以下代码会产生IndexError: list index out of range
错误。我不知道为什么,代码似乎是正确的。
numlist = [2, 12]
for number in numlist:
numlist[number] *= 3
print numlist
答案 0 :(得分:0)
number
是numlist
中的元素,而不是索引。 Python for
循环是for each loops,其中iterable(numlist
)中的每个元素都被分配给目标(number
):
>>> numlist = [2, 12]
>>> for number in numlist:
... print number
...
2
12
如果您想更改numlist
,则需要使用enumerate()
函数生成索引:
for index, number in enumerate(numlist):
numlist[index] = 3 * number
或者您可以使用列表解析重新构建列表:
numlist = [number * 3 for number in numlist]
演示:
>>> numlist = [2, 12]
>>> for index, number in enumerate(numlist):
... numlist[index] = 3 * number
...
>>> numlist
[6, 36]
>>> numlist = [2, 12]
>>> [number * 3 for number in numlist]
[6, 36]