【发布时间】:2014-01-22 05:07:33
【问题描述】:
这怎么可能?
list = [0, 0, 0, 0]
for i in list:
print list.index(i),
list[ list.index(i) ] += 1
这打印:0 1 2 3(这是可以理解的)
list = [1, 4, 5, 2]
for i in list:
print list.index(i),
list[ list.index(i) ] += 1
这打印:0 1 1 0
【问题讨论】:
-
这怎么可能呢?它按预期工作。
-
附带说明,您不应将变量命名为
list。这是内置类型和构造函数的名称。例如,如果您想从一组列表中列出一个列表,并且您已经重复使用名称list来表示其他含义,那么您将无法做到。 -
认识你的新朋友enumerate. 你可以做
for i, e in enumerate([1,4,5,2]): print i, e,它会做你认为应该做的事。每当您在思考for loop; wish I had the index of the elements...时,请考虑枚举... -
哦,我明白了。哈哈。我已经使用这个技巧很长时间了,我什至不记得它是如何工作的。我想我不能在循环内修改它们。