我有两个清单:
list1 = [2,1,0]
list2 = [0,1,2]
我试过这个。
for i,j in zip(list1,list2):
print (i,j) //This prints out 2 0, 1 1 and 0 2
但是我想要打印出2 2,1 1和0 0.所以我必须向后循环第二个循环,而我将第一个循环向前循环。我知道如何在单独的for loop
中执行这些操作,但我无法弄清楚如何在一个for loop
中执行此操作。
答案 0 :(得分:4)
您正在寻找reversed
功能。
for i, j in zip(list1, reversed(list2):
print(i, j)
或者,根据数据类型,您可以使用花哨的slicing。这通常适用于实现切片的数据类型(例如列表,元组,numpy数组),但不会在很多其他迭代器上工作。
for i, j in zip(list1, list2[::-1]):
print(i, j)
list2[::-1]
切片意味着以-1的增量对整个列表进行切片,这意味着它将向后移动通过列表而不是向前移动。
答案 1 :(得分:1)
这是另一种选择,非常基本,但可以完成工作:
for i,j in enumerate(list1):
print j, list2[-i-1]
假设两个列表的长度相同,这将按预期工作,否则,它将简单地迭代第一个列表中的元素数。