给定一个列表l:l = ['A', 'B', 'C']我如何编写一个函数来返回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']]
2 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
您可以用于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']]
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
没有 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))
添加回答
举报
0/150
提交
取消