首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >列表元素,而不是嵌套后使用迭代工具组合功能?

列表元素,而不是嵌套后使用迭代工具组合功能?
EN

Stack Overflow用户
提问于 2022-01-24 15:02:45
回答 1查看 39关注 0票数 0

诚然,我是一个非常缺乏经验的程序员,他的任务是创建一个Python程序,根据其他学生的四种选择(他们想要的3名学生)将学生按酒店房间进行排序。我正在使用一种非常基本的方法,因为我既没有时间也没有能力创建更高级的代码。这当然是一个初学者提出的问题,但我一直在尝试使用itertools.combinations()函数来创建一个长度为4的所有可能的学生组的列表。要执行我的程序的以下步骤,我需要在一个更大的列表中列出4个学生(每个组)。到目前为止,我尝试过的一切都不起作用,下面代码的计划依赖于创建一个4组的嵌套列表。

代码语言:javascript
代码运行次数:0
运行
复制
for comb in itertools.combinations(names, 4):
    combs = []
    for list in comb:
       combs.append(list)
    print(combs)

上面是我最接近创建我想要的列表的尝试之一,但是输出如下:

代码语言:javascript
代码运行次数:0
运行
复制
['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']

(这种情况持续了一段时间)。我如何将这些单独的列表放在更大的列表中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-24 15:07:49

代码语言:javascript
代码运行次数:0
运行
复制
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中的一个函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70835929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档