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


I have a list of Latitudes and one of Longitudes and need to iterate over the latitude and longitude pairs.

Is it better to:

  • A. Assume that the lists are of equal lengths:

    for i in range(len(Latitudes)):
  • B. Or:

    for Lat,Long in [(x,y) for x in Latitudes for y in Longitudes]:

(Note that B is incorrect. This gives me all the pairs, equivalent to itertools.product())

Any thoughts on the relative merits of each, or which is more pythonic?

Answer rating: 291

This is as pythonic as you can get:

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

Get Solution for free from DataCamp guru