反向访问python中的列表

时间:2018-06-26 06:36:57

标签: python list

a=[0,1,2,3]
for a[-1] in a :
    print a[-1]

该程序给我输出 0 1个 2 2

我无法对其进行解码。我期望它以相反的方向打印列表。或至少单独打印3个。有人可以帮助我了解此输出

2 个答案:

答案 0 :(得分:1)

您可以使用

for x in a[::-1]:
    print x

哪个以相反的顺序“读取”列表,一次读取一个元素。 lista[::1]一样被隐式“读取”。如果您想以相反的顺序“读” list,但每隔一秒钟,您就可以使用a[::-2],它会给您[3, 1]

或者您可以使用

for x in reversed(a):
    print x

答案 1 :(得分:1)

在每次迭代a[-1]a的最后一个元素)中,分配的值为a(列表依次为[0,1,2,0],然后依次为[0,1,2,1]和{{ 1}})

[0,1,2,2]

它“工作”到最后(尽管是向前,而不是反向),在此最后一次迭代会产生对值a=[0,1,2,3] for a[-1] in a : print a[-1] 的最后一次迭代

现在当然,如果您只想向后迭代列表:

2

for i in reversed(a): print(i) 在这里比reversed(a)更好,因为它不会创建仅用于对其进行迭代的列表。