![](/img/trans.png)
[英]Passing a list of itertools combinations to a function - map?
[英]List elements not nesting after using itertools combinations function?
诚然,我是一个非常缺乏经验的程序员,他的任务是创建一个 Python 程序,该程序将根据他们做出的其他学生的四个选择(他们想要的 3 个学生)将学生分类到酒店房间。我正在使用一个非常初级的方法, 因为我没有时间也没有能力创建更高级的代码. 这当然是一个初学者提出的问题, 但我一直在尝试使用 itertools.combinations() function 创建一个列表可能的长度为 4 的学生组。要执行我的程序的以下步骤,我需要将这些 4 名学生(每个组)的列表中的每一个都放在一个更大的列表中。到目前为止,我尝试的一切都不起作用,我的计划以下代码依赖于创建 4 组的嵌套列表。
for comb in itertools.combinations(names, 4):
combs = []
for list in comb:
combs.append(list)
print(combs)
以上是我最接近创建所需列表的尝试之一,但 output 是这样的:
['Destinee', 'Dahlia', 'Rylie', 'Lauryn']
['Destinee', 'Dahlia', 'Rylie', 'Katelynn']
['Destinee', 'Dahlia', 'Rylie', 'Alondra']
['Destinee', 'Dahlia', 'Rylie', 'Amber']
['Destinee', 'Dahlia', 'Rylie', 'Diya']
['Destinee', 'Dahlia', 'Rylie', 'Delilah']
['Destinee', 'Dahlia', 'Rylie', 'Jazlyn']
['Destinee', 'Dahlia', 'Rylie', 'Alexus']
['Destinee', 'Dahlia', 'Rylie', 'Alissa']
['Destinee', 'Dahlia', 'Rylie', 'Alma']
['Destinee', 'Dahlia', 'Rylie', 'India']
['Destinee', 'Dahlia', 'Rylie', 'Kyla']
['Destinee', 'Dahlia', 'Rylie', 'Macy']
(并且这样持续了一段时间)。 我怎样才能将这些单独的列表中的每一个都放在一个更大的列表中?
import itertools
large_list = []
for comb in itertools.combinations(names, 4):
#combs = [] # this line is not needed
#for list in comb:
#combs.append(list) # neither is this one, if you print comb it is already a list
large_list.append(comb)
print(combs)
names = ['Peter', 'John', 'Angela', 'Jim', 'Derek', 'Gabriella']
combs = list(itertools.combinations(names, 4))
'''
combs :
[('Peter', 'John', 'Angela', 'Jim'),
('Peter', 'John', 'Angela', 'Derek'),
('Peter', 'John', 'Angela', 'Gabriella'),
('Peter', 'John', 'Jim', 'Derek'),
('Peter', 'John', 'Jim', 'Gabriella'),
('Peter', 'John', 'Derek', 'Gabriella'),
('Peter', 'Angela', 'Jim', 'Derek'),
('Peter', 'Angela', 'Jim', 'Gabriella'),
('Peter', 'Angela', 'Derek', 'Gabriella'),
('Peter', 'Jim', 'Derek', 'Gabriella'),
('John', 'Angela', 'Jim', 'Derek'),
('John', 'Angela', 'Jim', 'Gabriella'),
('John', 'Angela', 'Derek', 'Gabriella'),
('John', 'Jim', 'Derek', 'Gabriella'),
('Angela', 'Jim', 'Derek', 'Gabriella')]
只需将梳子列表添加到large_list
,它就会保存所有组合。
或者您可以使用list(itertools.combinations(names, 4))
,它也会生成一个大列表。
ps从不使用list
作为变量名, list
是 python 中的 function。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.