从python列表中获取元素的唯一组合

时间:2013-08-13 05:57:47

标签: python list combinations

编辑: 这与How to get all possible combinations of a list’s elements?

不完全相同

本主题是关于查找唯一组合,而另一个主题是关于查找所有组合。

如果我有一个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"将被视为相同的组合。

我可能会写一些循环来做这件事,但我认为可能会有一个单行程也可以这样做。

1 个答案:

答案 0 :(得分:39)

您需要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']