编辑:
这不是如何获取列表元素的所有可能组合?的精确重复。
这个主题是关于找到唯一的组合,而另一个主题是关于找到所有的组合。
如果我有一个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
"将被视为相同的组合。
我可能会写几个循环来完成这个任务,但我认为可能有一行代码也能做到同样的效果。
编辑:
这不是如何获取列表元素的所有可能组合?的精确重复。
这个主题是关于找到唯一的组合,而另一个主题是关于找到所有的组合。
如果我有一个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
"将被视为相同的组合。
我可能会写几个循环来完成这个任务,但我认为可能有一行代码也能做到同样的效果。
你需要使用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']