繁体   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