提问人:TaranYourAss 提问时间:11/26/2022 更新时间:11/26/2022 访问量:157
赋值运算符和列表如何工作?- Python [复制]
How do Assignment Operators and Lists Work? - Python [duplicate]
问:
赋值运算符对列表的工作方式似乎与对整数的工作方式不同:
>>> list1 = [1,2,3,4,5]
>>> newlist1 = list1
>>> print(id(list1))
140282759536448
>>> print(id(newlist1))
140282759536448
>>> newlist1.append(6)
>>> print(id(newlist1))
140282759536448
>>> print(list1)
[1, 2, 3, 4, 5, 6]
>>> print(newlist1)
[1, 2, 3, 4, 5, 6]
赋值运算符的工作方式与整数类似:
>>> int1 = 1
>>> newint1 = int1
>>> print(id(int1))
140282988331248
>>> print(id(newint1))
140282988331248
但是修改其中一个整数会创建一个新 ID:
>>> newint1 = newint1 + 1
>>> print(id(newint1))
140282988331280
>>> print(id(int1))
140282988331248
为什么修改列表不会创建新 ID?
另外,您将如何为列表创建新 ID?
答:
0赞
Yafaa Ben Tili
11/26/2022
#1
您应该使用,因为当您这样做时,您不是在创建新列表,而是在引用相同的列表newlist1 = list1.copy()
newlist1 = list1
0赞
Jonas
11/26/2022
#2
在 Python 中,当您将列表分配给新变量时,您只会将列表的地址传递给它。
这就是函数返回相同值的原因。id()
如果要实际复制列表,则必须使用以下函数:copy()
initList = ["a", "b", "c"]
print(id(initList))
copiedList = initList.copy()
print(id(copiedList))
评论
[:]