Enumerate two python lists simultaneously?

前端 未结 6 789
既然无缘
既然无缘 2020-12-13 03:42

How do I enumerate two lists of equal length simultaneously? I am sure there must be a more pythonic way to do the following:

for index, value1 in enumerate(         


        
相关标签:
6条回答
  • 2020-12-13 03:59

    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
    
    0 讨论(0)
  • 2020-12-13 04:02
    for i, (x, y) in enumerate(zip(data1, data2)):
    

    In Python 2.x, you might want to use itertools.izip instead of zip, esp. for very long lists.

    0 讨论(0)
  • 2020-12-13 04:06

    Use zip for both Python2 and Python3:

    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.

    0 讨论(0)
  • 2020-12-13 04:06
    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

    0 讨论(0)
  • 2020-12-13 04:06

    Suppose you want to use zip:

       >>> for x in zip([1,2], [3,4]):
        ...     print x
        ... 
        (1, 3)
        (2, 4)
    
    0 讨论(0)
  • 2020-12-13 04:12

    Since it has been mentioned that the length are equal,

    for l in range(0, len(a)):
       print a[l], b[l]
    
    0 讨论(0)
提交回复
热议问题