【问题标题】:Can an element in a list of python reassign its value? [duplicate]python列表中的元素可以重新分配其值吗? [复制]
【发布时间】:2020-12-21 10:33:36
【问题描述】:
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,2,3]
list = [1,2,3]
i = 1
while i<=len(list):
    list[i-1] += 1
    i += 1
print(list) # Now the result is [2,3,4]

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

【问题讨论】:

  • 你不应该使用list作为列表的名称,i应该从0开始
  • number 是一个单独的变量,它仅保存列表中元素的值。它没有指向复制它的列表元素的基础链接。

标签: python list element assign


【解决方案1】:

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

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

如果你正在修改一个可变对象,那就是另一回事了,例如一个列表:

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

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2016-11-23
    • 2015-08-18
    • 2014-02-14
    • 2018-03-03
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多