首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >N个列表的Python3列表理解

N个列表的Python3列表理解
EN

Stack Overflow用户
提问于 2020-05-30 22:02:39
回答 2查看 31关注 0票数 1

我有一种迭代列表的方法,如我所希望的:

代码语言:javascript
复制
a = ["1","2","3","4","5","6","7","8","9","10"]
b = ['A','B','C','D','E','F','G','H','I','J']
c = ["11","12","13","14","15","16","17","18","19","20"]

for x, y, z in [(x,y,z) for x in a for y in b for z in c]:
    print(x,y,z)

输出:

代码语言:javascript
复制
1 A 11
1 A 12
1 A 13
1 A 14
1 A 15
1 A 16
1 A 17
1 A 18
1 A 19
1 A 20
1 B 11
1 B 12
1 B 13
1 B 14
...etc

但是,如果我的列表存储在一个列表中,并且有n个列表,那么如何实现相同的结果呢?例如:

代码语言:javascript
复制
main_list=[["1","2","3","4","5","6","7","8","9","1"],['A','B','C','D','E','F','G','H','I','J'],["11","12","13","14","15","16","17","18","19","20"],['k','l','m','n','o','p','q','r','s','t']]

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-30 22:22:56

看看itertools.product

代码语言:javascript
复制
a = ["1","2","3","4","5","6","7","8","9","10"]
b = ['A','B','C','D','E','F','G','H','I','J']
c = ["11","12","13","14","15","16","17","18","19","20"]

from itertools import product

all_lists = [a, b, c]
for c in product(*all_lists):
    print(c)

指纹:

代码语言:javascript
复制
('1', 'A', '11')
('1', 'A', '12')
('1', 'A', '13')
('1', 'A', '14')
('1', 'A', '15')
('1', 'A', '16')
('1', 'A', '17')
('1', 'A', '18')
('1', 'A', '19')
('1', 'A', '20')
('1', 'B', '11')

... and so on.
票数 1
EN

Stack Overflow用户

发布于 2020-05-30 22:24:25

对于该示例,下面给出了所需的组合。

代码语言:javascript
复制
import itertools

list(itertools.product(*(a,b,c)))

对于主犯来说-

代码语言:javascript
复制
main_list=[["1","2","3","4","5","6","7","8","9","1"],['A','B','C','D','E','F','G','H','I','J'],["11","12","13","14","15","16","17","18","19","20"],['k','l','m','n','o','p','q','r','s','t']]

combintns = list(itertools.product(*main_list))

# in case you're specific about output format/appearance
for i in combintns:
  print(i[0],i[1],i[2],i[3])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62109202

复制
相关文章

相似问题

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