三日月館【別館】開発・制作Tips集

[Python] リストの要素からN個取り出した全ての重複あり組み合わせをループする

最終更新:

fumiduki1985

- view
管理者のみ編集可
itertoolsモジュールのcombinations_with_replacement()関数を使用すると可能。
第1引数にリスト、第2引数に組み合わせを取る要素数を指定する。
itertoolsモジュールはループのためのイテレータを生成する色々な機能が揃っていて知っていると便利。

記述例:
import itertools

list1 = ['a', 'b', 'c']
for elem1, elem2 in itertools.combinations_with_replacement(list1, 2):  # list1から2つ取り出した重複あり組み合わせ
  # この場合、 (a, a), (a, b), (a, c), (b, b), (b, c), (c, c) の6通りでループする
  print '%s, %s' % (elem1, elem2)


このページのタグ一覧
Python プログラミング

記事メニュー
ウィキ募集バナー