Python中列表和字符串的賦值問題


在Python中,列表變量可以直接進行賦值,如下:

a = [1,2,3,4]
b = a
print(b)

結果會顯示 [1,2,3,4]

字符串也是一樣的可以賦值,但是Python中並不是將列表或字符串復制一份再傳給新變量,而是傳地址

例如:

a = [1,2,3,4]
b = a
a[0] = 5
print(a)
print(b)

結果會顯示

[5,2,3,4]
[5,2,3,4]

可以看到 b 會隨着 a 改變

如果不知道這個性質的話,寫程序時會出現莫名其妙的bug

如果要復制一份 a 傳給 b ,可以用以下代碼

a = [1,2,3,4]
b = a[:]
a[0] = 5
print(a)
print(b)

此時輸出為

[5,2,3,4]
[1,2,3,4]

這種方法就是將 a 復制了一份傳給 b

當然,基本只在列表中用到,字符串是不允許修改的,也就不會出現上面的問題

a = 'hello'
a[0] = 'H'
#這里將會報錯,字符串不允許修改

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM