【发布时间】:2015-09-16 10:41:18
【问题描述】:
我在谷歌搜索时发现了这个问题,但无法理解它是如何发生的?
a = [0, 1, 2, 3]
for a[-1] in a:
print(a[-1])
结果:
0 1 2 2
现在如果我再次打印:
a
[0, 1, 2, 2]
另一个类似的例子:
设 a 为原始列表,即 [0,1,2,3]
现在,让我们运行另一个 for 循环,但像这样:
for a[0] in a:
print(a[0])
这次的结果是:
0 1 2 3
但再次打印:
[3,1,2,3]
所以,我有两个问题:
1) 在这两种情况下,原始列表是如何更新的?
2) 第一种情况下的结果解释是什么,即for循环为负数?
【问题讨论】:
-
你为什么要这么做
for a[0] in a?通常你会做for i in a或类似的。你预计会发生什么? -
其实我是想循环一个列表,所以我这样做了,但很快意识到我的错误,并纠正了它,但后来我发现,我原来的列表已经改变了,就像上面提到的一样,所以我只是用打印语句重新运行代码,以检查发生了什么。还是不明白。
-
像这样向后循环
for i in a[::-1] -
或:
for i in reversed(a):(这不会创建a的副本)。 -
@TimCastelijns 你为什么要为 a[0] 在 a 中这样做?一位面试官的兄弟问了我记得的那个问题,我想你为什么要问这个?大声笑:)
标签: python