簡體   English   中英

在Python中為彼此分配列表

[英]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 )。 從那里開始,您要更改s1list1 ),將-7分配給list1[2] ,然后分配-10

您不會以任何方式更改list2 在分配中使用其他名稱以使其正常工作,例如s = s1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM