【发布时间】:2015-07-04 08:05:05
【问题描述】:
list = [1,2,3,4,5]
print(list)
for each in list:
list[each] = 4
print(list)
我得到了结果:
[1, 4, 3, 4, 4]
第 4 行似乎以某种方式将“每个”设置为 4……但我不知道如何。应该将当前迭代器的值更改为 4.,这在 list[4] 处也是如此。
编辑: 等等等等,好吧,'每个'实际上来自列表中的值?这是唯一合乎逻辑的方式,现在我想起来了。
【问题讨论】:
-
fyi,你永远不应该调用
list的东西 - 这会影响内置的list()函数。 -
阅读 Python 文档,了解迭代列表如何在 Python 中工作。你得到的是项目,而不是索引(因为索引通常是无用的)。实际上,如果您只需要遍历索引,您可以使用
for i in range(len(list))。但要真正用一个替换列表中的所有项目,您可以简单地创建一个新项目:list = [4] * len(list) -
哦,天哪,我希望阅读这些文档对我来说是有意义的,即使有一半的时间,但在弄清楚你所说的项目而不是索引的意思之后;你到底为什么要让一种语言做到这一点?
-
实际上 TheifMaster 您可以将其发布为答案吗?这可能是我能得到的最好的了。
-
如果你把
print(each, list)放在循环里面,它可能会变得更清晰......
标签: loops python-3.x for-loop