首页 > Python > Python  如何并行遍历两个列表?

Python  如何并行遍历两个列表?

上一篇 下一篇

我有两个可迭代对象,我想成对地检查它们:

foo = [1, 2, 3]
bar = [4, 5, 6]

for (f, b) in iterate_together(foo, bar):
    print("f:", f, " |  b:", b)

这应该导致:

f: 1  |  b: 4
f: 2  |  b: 5
f: 3  |  b: 6

一种方法是迭代索引:

for i in range(len(foo)):
    print("f:", foo[i], " |  b:", bar[i])

但这对我来说似乎有些不python。有没有更好的方法?

分割线

网友回答:

蟒蛇 3

for f, b in zip(foo, bar):
    print(f, b)

zip当较短的 或 停止时停止。foobar

Python 3 中,返回元组的迭代器,
就像在 Python2 中一样。要获取元组列表
,请使用 。要压缩直到两个迭代器
都用完,您将使用
itertools.zip_longest。
zipitertools.iziplist(zip(foo, bar))

蟒蛇 2

Python 2 中,
返回元组列表。这在并且不是很大时很好。如果它们都是巨大的,那么形成是一个不必要的大量
临时变量,应该用 or
代替,它返回一个迭代器而不是列表。
zipfoobarzip(foo,bar)itertools.izipitertools.izip_longest

import itertools
for f,b in itertools.izip(foo,bar):
    print(f,b)
for f,b in itertools.izip_longest(foo,bar):
    print(f,b)

izip当 或 耗尽时停止。
当两者都筋疲力尽时停止。
当较短的迭代器耗尽时,生成一个元组,其位置与该迭代器相对应。如果您愿意,您还可以设置不同的其他。有关完整故事,请参见此处。
foobarizip_longestfoobarizip_longestNonefillvalueNone


另请注意,和它的类似 brethen 可以接受任意数量的可迭代对象作为参数。例如zipzip

for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'], 
                              ['red', 'blue', 'green']):
    print('{} {} {}'.format(num, color, cheese))

指纹

1 red manchego
2 blue stilton
3 green brie

分割线

网友回答:

你想要这个函数。zip

for (f,b) in zip(foo, bar):
    print "f: ", f ,"; b: ", b

分割线

网友回答:

您应该使用“zip”功能。下面是一个示例,您自己的zip函数的外观

def custom_zip(seq1, seq2):
    it1 = iter(seq1)
    it2 = iter(seq2)
    while True:
        yield next(it1), next(it2)

模板简介:该模板名称为【Python  如何并行遍历两个列表?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 326次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-20
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信公众平台 微信素材 微信图片 html5 响应式 自适应 微信模板 单页式简历模板 微信文章 企业网站
您可能会喜欢的其他模板