Python 如何以循环顺序访问两个列表中的项目?

Python 如何以循环顺序访问两个列表中的项目?,python,list,Python,List,我有两张名单 list_a = ['color-1', 'color-2', 'color-3', 'color-4'] list_b = ['car1', 'car2', 'car3', 'car4' ........... 'car1000'] 我需要按列表a的循环顺序访问元素: 我试过了,没用。请告知 start=0 i=0 for car_idx in xrange(start, end): if i <= len(color_names): try:

我有两张名单

list_a = ['color-1', 'color-2', 'color-3', 'color-4']
list_b = ['car1', 'car2', 'car3', 'car4' ........... 'car1000']
我需要按列表a的循环顺序访问元素:

我试过了,没用。请告知

start=0
i=0
for car_idx in xrange(start, end):
    if i <= len(color_names):
        try:
            self.design(color_names[i], self.cars[car_idx])
            i+=1
        except SomeException as exe:
            print 'caught an error'
使用模运算符%索引到适当的范围:

len_a = len(list_a)
len_b = len(list_b)
end = max(len_a, len_b)
for i in range(end):
    print(list_a[i % len_a], list_b[i % len_b])
    # ... do something else 
用于使列表中的循环iterable。 用于将循环iterable中的项与列表b中的项配对。当传递给zip的最短iterable(即列表)结束时,zip返回的iterable将停止

印刷品

color-1 car1
color-2 car2
color-3 car3
color-4 car4
color-1 car5
color-2 car6
color-3 car1000

你赢了我!这很好,因为它不知道哪个列表最短。
import itertools as IT
list_a = ['color-1', 'color-2', 'color-3', 'color-4']
list_b = ['car1', 'car2', 'car3', 'car4', 'car5', 'car6', 'car1000']

for a, b in zip(IT.cycle(list_a), list_b):
    print(a, b)
color-1 car1
color-2 car2
color-3 car3
color-4 car4
color-1 car5
color-2 car6
color-3 car1000