生成python列表的所有类型的唯一可能组合



你好,我需要知道如何以这样一种有趣的方式获得列表的所有可能的唯一组合:

例如:

myLIST=[70,90,100]

我想要两位数或一位数的唯一组合。。即;

final_list=[ { [100 , 70] , [90] } , { [100 , 90] , [70] }]

在此示例中:可能只有这两个子列表;

as;如果我取[{ [70,100] , [90] }][{[90,100],[70]}]子列表组合开始重复

Note : for a list of 5 elements;i just need those combination lists which have either 3 elemnts or two elements

例如:myLIST=[10,20,30,40,50]

final_list=[{[10,30,50],[20,40]}] , {[10,50],[20,50,30]}等等。

这里我只取了2或3号的子列表

您可以使用itertools(一个内置的python库(生成列表组合:

from itertools import combinations
sample_list = ['a', 'b', 'c', 'c']
list_combinations = list()
sample_set = set(sample_list)
for n in range(len(sample_set) + 1):
list_combinations += list(combinations(sample_set, n))
print(list_combinations)

退货:

[(), ('a',), ('b',), ('c',), ('a', 'b'), ('a', 'c'), ('b', 'c'), ('a', 'b', 'c')]

您可以在此处找到有关itertools的更多信息:https://datagy.io/python-combinations-of-a-list/

最新更新