简体   繁体   English

同时枚举两个python列表?

[英]Enumerate two python lists simultaneously?

How do I enumerate two lists of equal length simultaneously?如何同时枚举两个等长的列表? I am sure there must be a more pythonic way to do the following:我确信必须有一种更 Pythonic 的方式来执行以下操作:

for index, value1 in enumerate(data1):
    print index, value1 + data2[index]

I want to use the index and data1[index] and data2[index] inside the for loop.我想在 for 循环中使用 index 和 data1[index] 和 data2[index]。

Use zip for both Python2 and Python3:对 Python2 和 Python3 使用zip

for index, (value1, value2) in enumerate(zip(data1, data2)):
    print(index, value1 + value2)  # for Python 2 use: `print index, value1 + value2` (no braces)

Note that zip runs only up to the shorter of the two lists(not a problem for equal length lists), but, in case of unequal length lists if you want to traverse the whole list then use itertools.izip_longest .请注意, zip仅运行到两个列表中较短的一个(对于等长列表来说不是问题),但是,如果您想遍历整个列表,则在长度不等的列表的情况下,请使用itertools.izip_longest

for i, (x, y) in enumerate(zip(data1, data2)):

In Python 2.x, you might want to use itertools.izip instead of zip , esp.在 Python 2.x 中,您可能希望使用itertools.izip而不是zip ,尤其是。 for very long lists.对于很长的列表。

from itertools import count

for index, value1, value2 in zip(count(), data1, data2):
    print(index, value1, value2)

Source: http://www.saltycrane.com/blog/2008/04/how-to-use-pythons-enumerate-and-zip-to/#c2603来源: http : //www.saltycrane.com/blog/2008/04/how-to-use-pythons-enumerate-and-zip-to/#c2603

Althought this is not very clear what you look for,虽然这不是很清楚你要找什么,

>>> data1 = [3,4,5,7]
>>> data2 = [4,6,8,9]
>>> for index, value in enumerate(zip(data1, data2)):
    print index, value[0]+value[1]


0 7
1 10
2 13
3 16

Since it has been mentioned that the length are equal,既然已经提到长度相等,

for l in range(0, len(a)):
   print a[l], b[l]

Suppose you want to use zip :假设你想使用zip

   >>> for x in zip([1,2], [3,4]):
    ...     print x
    ... 
    (1, 3)
    (2, 4)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM