2024-11-01から1ヶ月間の記事一覧
1~1000 の間の乱数を100個作る。 対象:Oracle WITH generate(id, rnum) AS ( SELECT 1, TRUNC(dbms_random.value(1,1000 )) FROM dual UNION ALL SELECT id + 1, TRUNC(dbms_random.value(1,1000 )) FROM generate WHERE id + 1 <= 100 ) SELECT rnum FR…
WITH 句を複数記述する場合は、カンマで区切って WITH 宣言を書かずに次のWITH句を 記述する。PostgreSQL の例。1から8までの数値IDのテーブルに、乱数発生のテーブルのIDが奇数で外部結合させる。 WITH RECURSIVE generate1(id) AS ( SELECT 1 UNION ALL …
oboe2uran.hatenablog.comもっと単純に以下の方法、、 StreamSupport で作る filter に任せる。 static <T> Iterable<T> select(Iterable<T> it, Predicate<T> pred) { return () -> StreamSupport.stream(it.spliterator(), false) .filter(pred).iterator(); }</t></t></t></t>
Iterable<T> に、Predicate<T> を指定する形で生成する。 public static <T> Iterable<T> selectIterable(Iterable<T> it, Predicate<T> pred) { return () -> new Iterator<T>(){ Iterator<T> sourceIterator = it.iterator(); T current; boolean hasCurrent = false; @Override pu</t></t></t></t></t></t></t></t>…
短絡的だけど。。。 public static <T> Iterable<T> toIterable(Iterator<T> itr){ return new Iterable<T>(){ @Override public Iterator<T> iterator() { return itr; } }; }</t></t></t></t></t>
リストの最後、の見慣れない求め方 *_, last = [1, 3, 2, 6, 25, 2] print(last) functools の reduce でリストから最大値を求める res = functools.reduce(lambda a, b: a if a > b else b, [1, 3, 2, 6, 25, 2])
java.util.function.Predicate を適用した java.util.Iterator の生成List に対して生成します。 static メソッドです。 public static <T> Iterator<T> filterate(List<T> list, Predicate<T> predicate){ return new Iterator<T>(){ int ix = -1; @Override public boolea</t></t></t></t></t>…
対象リスト l1 = [3, 1, 9, 13, 10, 8, 17, 2] 10 より大きいリストを求める。内包表記を使う l2 = [e for e in l1 if e > 10] filter を使う l2 = list(filter(lambda x:x > 10, l1)) itertools.filterfalse を使う import itertools l1 = [3, 1, 9, 13, 10…
順列:Permutation import itertools po = itertools.permutations(['A', 'B', 'C'], 2) print(type(po)) plist = list(po) print(plist) for v in itertools.permutations(['A', 'B', 'C'], 2): print(v) <class 'itertools.permutations'> [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C')</class>…
Python でデカルト積(直積) - Oboe吹きプログラマの黙示録 に触発されて、Java 環境でのデカルト積を求めるものを作りました。 import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /** * デカルト…
簡単なデカルト積を作るサンプル itertools をインポート import itertools product( 要素リスト, ,,, ) で生成する。 作成されるのは、イテラブル・オブジェクト list1 = ['A', 'B'] list2 = [1, 2, 3] products = itertools.product(list1, list2) print(p…
表題の件、では代わりにストアド FUNCTION でも代替案があるのだろうが、 ストアド FUNCTION 定義の権限がない時、 WITH句で対応する方法がある。数値の例 WITH generate_series(n) AS ( SELECT 1 FROM dual UNION ALL SELECT n + 1 FROM generate_series WH…