【问题标题】:what is the significance of using list index in for loop of python?在python的for循环中使用列表索引有什么意义?
【发布时间】:2020-08-07 17:11:19
【问题描述】:

我试图理解下面的代码

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

我期望一个无限循环打印 3,但输出如下所示非常难以理解

输出:

0
1
2
2

谁能解释一下这段代码的工作原理!

提前致谢

【问题讨论】:

  • 在循环中插入a[-1] = i 行,其中i 是迭代中的当前值。 for a[-1] ... 在每次迭代时将迭代值分配给 a[-1]...
  • 这是一个有趣的脑力练习。但我不明白为什么有人会写这样的代码。

标签: python


【解决方案1】:

for 循环中的in 关键字与其他用例不同。

在这个for 循环列表中返回一个迭代器并将它分配给你的情况下的变量列表的最后一个元素

为了破坏你的代码,这就是它在后台所做的事情

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

参考:https://docs.python.org/3/reference/compound_stmts.html#the-for-statement

Python 'in' keyword in expression vs. in for loop

【讨论】:

  • 在这种情况下,我们应该在最后一次迭代中得到 3 作为输出,但我们得到 2 作为输出
  • @HarishRudroju 因为在倒数第二次迭代中,2 被分配给了a[-1]...
猜你喜欢
  • 1970-01-01
  • 2012-07-13
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2021-02-07
相关资源
最近更新 更多