[英]Assigning lists to eachother in Python
有人可以解釋一下為什么這個python代碼顯示6而不是-10嗎?
為什么s2 / list2在這段代碼中沒有變化?
def f(s1,s2):
s2 = s1
s1[2] = -7
s1 = s2
s2[2] = -10
list1 = [1,2,3]
list2 = [4,5,6]
f(list1,list2)
print(list2[2])
在函數內部的行s2 = s1
之后,您傳入的s2在函數內部不再相關。
該行將值(即列表和內容)分配給變量s2。
隨着s2 = s1
您只是失去了對s2
的本地引用(即list2
)。 從那里開始,您要更改s1
( list1
),將-7
分配給list1[2]
,然后分配-10
。
您不會以任何方式更改list2
。 在分配中使用其他名稱以使其正常工作,例如s = s1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.