python列表中的元素可以重新分配其值吗?

问题描述

list = [1,2,3] # I want to change it to [2,3,4]
for number in list:
    number += 1
print(list) # The result is still [1,3]
list = [1,3]
i = 1
while i<=len(list):
    list[i-1] += 1
    i += 1
print(list) # Now the result is [2,4]

我想知道第一个for循环不会更改值的原因

解决方法

我想知道第一个for循环不会更改值的原因

因为您没有将任何内容分配回列表,并且数字是不可变的。

如果您要修改可变对象(例如,列表:

>>>
>>> l = [[],[]]
>>> for x in l:
...   x += [1]  # append an element into the list object(s)
...
>>> l
[[1],[1]]
>>>