42

编辑:这不是如何获取列表元素的所有可能组合的完全相同的副本?

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

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

我可能可以写几个循环来做到这一点,但我认为可能有一个单行可以做到这一点。

4

1 回答 1

61

你需要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']
于 2013-08-13T06:00:02.110 回答