首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python多列表迭代

Python多列表迭代
EN

Stack Overflow用户
提问于 2012-05-03 01:16:57
回答 3查看 211关注 0票数 7

有没有一种聪明的方法可以在Python语言中遍历两个列表(不使用列表理解)?

我的意思是,就像这样:

代码语言:javascript
复制
# (a, b) is the cartesian product between the two lists' elements
for a, b in list1, list2:
   foo(a, b)

而不是:

代码语言:javascript
复制
for a in list1:
    for b in list2:
        foo(a, b)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-03 01:19:11

itertools.product()就是这样做的:

代码语言:javascript
复制
for a, b in itertools.product(list1, list2):
  foo(a, b)

它可以处理任意数量的可迭代对象,从这个意义上讲,它比嵌套的for循环更通用。

票数 13
EN

Stack Overflow用户

发布于 2018-05-31 17:46:19

代码语言:javascript
复制
for a,b in zip(list1, list2):
    foo(a,b)

zip将列表/数组的元素按元素顺序组合成元组。例如:

代码语言:javascript
复制
list1 = [1,2,5]
list2 = [-2,8,0]
for i in zip(list1,list2):
    print(i)
>>> (1, -2)
>>> (2, 8)
>>> (5, 0)
票数 0
EN

Stack Overflow用户

发布于 2018-05-31 18:03:08

Use zip it允许你一次压缩两个或更多的列表并进行迭代。

代码语言:javascript
复制
list= [1, 2]
list2=[3,4]
combined_list = zip(list, list2)
for a in combined_list:
        print(a)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10418575

复制
相关文章

相似问题

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