a=[0,1,2,3]
for a[-1] in a :
print a[-1]
该程序给我输出 0 1个 2 2
我无法对其进行解码。我期望它以相反的方向打印列表。或至少单独打印3个。有人可以帮助我了解此输出
答案 0 :(得分:1)
您可以使用
for x in a[::-1]:
print x
哪个以相反的顺序“读取”列表,一次读取一个元素。 list
与a[::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)
更好,因为它不会创建仅用于对其进行迭代的列表。