[英]Python list of all possible n-member combinations given master list
给定一个列表l
:
l = ['A', 'B', 'C']
如何编写一个 function 在列表列表中返回n
成员的所有可能的唯一组合? 顺序对于唯一性并不重要。 此示例中的输出将是(顺序在输出中也不重要):
my_function(list=l, n=1)
[['A'], ['B'], ['C']]
my_function(list=l, n=2)
[['A', 'B'], ['A', 'C'], ['B', 'C']]
my_function(list=l, n=3)
[['A', 'B', 'C']]
您可以将itertools.combinations
用于该任务:
from itertools import combinations
l = ['A', 'B', 'C']
def my_function(lst, n):
rv = []
for c in combinations(lst, n):
rv.append(list(c))
return rv
print(my_function(l, 1))
print(my_function(l, 2))
print(my_function(l, 3))
印刷:
[['A'], ['B'], ['C']]
[['A', 'B'], ['A', 'C'], ['B', 'C']]
[['A', 'B', 'C']]
没有Itertools:
a=['A','B','C']
def combi(a):
result = [[]]
for x in a:
result.extend([subset + [x] for subset in result])
return result
print(combi(a))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.