web-dev-qa-db-ja.com

pythonリストから要素の一意の組み合わせを取得する

編集:これは リストの要素のすべての可能な組み合わせを取得する方法? の正確な複製ではありません

このトピックは一意の組み合わせを見つけることに関するものであり、他のトピックはすべての組み合わせを見つけることに関するものです。

pythonリストがある場合:

 L = [1,2,3,4]

以下のようなリストから3つの要素のすべての可能なユニークな組み合わせを取得する最良の方法は何ですか:

["1,2,3", "1,2,4", "2,3,4", "3,4,1"]

組み合わせの要素の順序は重要ではありません。例えば、 "1,2,3"および"3,2,1"は同じ組み合わせと見なされます。

私はおそらくこれを行うためにいくつかのループを書くことができますが、同じことができるワンライナーがあるかもしれないと思います。

31
Allen

itertools.combinations

>>> from itertools import combinations
>>> L = [1, 2, 3, 4]
>>> [",".join(map(str, comb)) for comb in combinations(L, 3)]
['1,2,3', '1,2,4', '1,3,4', '2,3,4']
40