Is there a better way to iterate over two lists, getting one element from each list for each iteration? [duplicate] Is there a better way to iterate over two lists, getting one element from each list for each iteration? [duplicate] python python

Is there a better way to iterate over two lists, getting one element from each list for each iteration? [duplicate]


This is as pythonic as you can get:

for lat, long in zip(Latitudes, Longitudes):    print(lat, long)


Another way to do this would be to by using map.

>>> a[1, 2, 3]>>> b[4, 5, 6]>>> for i,j in map(None,a,b):    ...   print i,j    ...1 42 53 6

One difference in using map compared to zip is, with zip the length of new list is
same as the length of shortest list.For example:

>>> a[1, 2, 3, 9]>>> b[4, 5, 6]>>> for i,j in zip(a,b):    ...   print i,j    ...1 42 53 6

Using map on same data:

>>> for i,j in map(None,a,b):    ...   print i,j    ...    1 4    2 5    3 6    9 None


Good to see lots of love for zip in the answers here.

However it should be noted that if you are using a python version before 3.0, the itertools module in the standard library contains an izip function which returns an iterable, which is more appropriate in this case (especially if your list of latt/longs is quite long).

In python 3 and later zip behaves like izip.