Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python的for循环中使用列表索引的意义是什么?_Python - Fatal编程技术网

在python的for循环中使用列表索引的意义是什么?

在python的for循环中使用列表索引的意义是什么?,python,Python,我试图理解下面的代码 a=[0,1,2,3] for a[-1] in a: print(a[-1]) 我期望无限循环打印3,但输出是相当不可理解的,如下所示 输出: 0 1 2 2 有人能解释一下这个代码的工作原理吗 提前感谢中的关键字for循环不同于其他用例 在这个for循环列表中,返回一个迭代器,并将其分配给实例中的变量列表的最后一个元素 要破坏您的代码,这就是它在后台所做的 for i in a: a[-1] = i print(a[-1]) 参考: 然后在

我试图理解下面的代码

a=[0,1,2,3]
for a[-1] in a:
    print(a[-1])
我期望无限循环打印3,但输出是相当不可理解的,如下所示

输出:

0
1
2
2
有人能解释一下这个代码的工作原理吗


提前感谢
中的
关键字
for
循环不同于其他用例

在这个
for
循环列表中,返回一个迭代器,并将其分配给实例中的变量列表的最后一个元素

要破坏您的代码,这就是它在后台所做的

for i in a:
    a[-1] = i
    print(a[-1])
参考:


然后在循环中插入
a[-1]=i
行,其中
i
是迭代中的当前值
对于[-1]…
在每次迭代时将迭代值分配给[-1]
。这是一个有趣的心理练习。但是我不明白为什么有人会写这样的代码。在这种情况下,我们应该在最后一次迭代中得到3作为输出,但是我们得到2作为输出output@HarishRudroju因为在倒数第二次迭代中,
2
被分配给
a[-1]