給定一個列表l:l = ['A', 'B', 'C']我如何編寫一個函數(shù)來返回n列表列表中所有可能的唯一成員組合?順序與唯一性無關(guā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貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
您可以用于itertools.combinations
任務(wù):
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']]

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗 獲得超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
提交
取消