を最初はRubyで書き始めたのだが、想像してたよりも面倒なことになりそうだった(mapとかinjectでできる?再帰が必要?)。 そんなとき、研究室の先輩にPythonを勧められたときに教えてもらった、リストの内包表記のことをふと思い出したわけである。 自分はPython使いではないので手間取るかと思ったが、かなりあっさりできてしまった。 せっかくだから(?)、最近リリースしたばかりらしいPython 3.0で動くように書き直してみた。 from functools import reduce # 直積を求める関数 def product(lists): return reduce( lambda prod, list: [x + [y] for x in prod for y in list], lists, [[]]) alphabets = ['A', 'B', 'C'] numbe
●全要素のイテレータが欲しい場合(import itertools) 直積(デカルト積):itertools.product 例: list(itertools.product([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], repeat=2)) #= itertools.product([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]) [(‘a’, ‘a’), (‘a’, ‘b’), (‘a’, ‘c’), (‘a’, ‘d’), (‘a’, ‘e’), (‘b’, ‘a’), (‘b’, ‘b’), (‘b’, ‘c’), (‘b’, ‘d’), (‘b’, ‘e’), (‘c’, ‘a’), (‘c’, ‘b’), (‘c’, ‘c’), (‘c’, ‘d’), (‘c’, ‘e’), (‘d’, ‘a’), (‘d’,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く