如何找到从第一个列表中选择一个项目和从第二个列表中选择最多 n 个项目的所有组合

如何解决如何找到从第一个列表中选择一个项目和从第二个列表中选择最多 n 个项目的所有组合

我有两个列表,我想返回一个新的列表列表,其中每个列表都来自第一个列表中的一个项目和第二个列表中最多两个项目: 来自实例:

vaccinate_list: [('vaccinate',(2,3)),('vaccinate',(8,1))]
quarantine_list: [('quarantine',(6,('quarantine',(3,4)),(0,1))]

将返回(没有新行):

allCombinations = [
[('vaccinate',3))],[('vaccinate',1))],4))],1)),1))]
]

我尝试使用 intertools 组合并挣扎, 请帮助

解决方法

最好的方法是使用 itertools.product。见下文(评论中的解释):

allCombinations=[]

allCombinations.extend(vaccinate_list) #add items of vaccinate_list only

list_one=[i for i in itertools.product(vaccinate_list,quarantine_list)] #get all combinations with one item from each list

allCombinations.extend(list_one) #add them to allcombinations

list_two_temp=[i for i in itertools.combinations(quarantine_list,2)] #get combinations of 2,in quarantine_list

list_two=[i for i in itertools.product(vaccinate_list,list_two_temp)] #get combinations with 1 item from vaccinate_list and 2 from quarantine_list

list_two=[(i[0],i[1][0],i[1][1]) for i in list_two] #flatten the items from previous list

allCombinations.extend(list_two) #add them to allcombinations

allCombinations=[list(i) for i in allCombinations] #change all items to list

print(allCombinations)

输出:

[['vaccinate',(2,3)],['vaccinate',(8,1)],[('vaccinate',3)),('quarantine',(6,3))],(3,4))],(0,1))],1)),4)),1))]]
,
for i in vaccinate_list:
    all_combinations.append(i)
for i in vaccinate_list:
    for j in quarantine_list:
         all_combinations.append((i,j))
for i in vaccinate_list:
     for j in quarantine_list:
          for k in quarantine_list:
               all_combinations.append((i,j,k))

可能很复杂,可能是一种愚蠢的方法,但它有效

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?