簡體   English   中英

Python 給定主列表的所有可能的 n 成員組合列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM