python中b=a和b=a[:]區(qū)別小結(jié)
在 Python 中,b = a 和 b = a[:] 有顯著區(qū)別。以下是它們的不同點(diǎn)和原理:
1.b = a
引用賦值:b 和 a 指向同一個(gè)對(duì)象(內(nèi)存地址相同)。
修改 b 或 a 會(huì)同時(shí)影響另一個(gè)變量,因?yàn)樗鼈兪峭粋€(gè)對(duì)象的不同名稱。
示例代碼:
a = [1, 2, 3] b = a b[0] = 100 print(a) # 輸出:[100, 2, 3] print(b) # 輸出:[100, 2, 3]
2.b = a[:]
淺拷貝:b 是 a 的一個(gè)副本,它們指向不同的對(duì)象(內(nèi)存地址不同)。
修改 b 不會(huì)影響 a,反之亦然。
示例代碼:
a = [1, 2, 3] b = a[:] b[0] = 100 print(a) # 輸出:[1, 2, 3] print(b) # 輸出:[100, 2, 3]
注意事項(xiàng):
淺拷貝的局限性:
如果列表中有嵌套的可變對(duì)象(如列表中的列表),a[:] 只拷貝第一層。內(nèi)部的嵌套對(duì)象仍然共享引用。
a = [[1, 2], [3, 4]] b = a[:] b[0][0] = 100 print(a) # 輸出:[[100, 2], [3, 4]] print(b) # 輸出:[[100, 2], [3, 4]]
如果需要完全獨(dú)立的拷貝,可以使用 copy 模塊的 deepcopy 方法:
import copy a = [[1, 2], [3, 4]] b = copy.deepcopy(a) b[0][0] = 100 print(a) # 輸出:[[1, 2], [3, 4]] print(b) # 輸出:[[100, 2], [3, 4]]
小結(jié):
- b = a:指向同一個(gè)對(duì)象,修改一個(gè)會(huì)影響另一個(gè)。
- b = a[:]:創(chuàng)建淺拷貝,修改頂層不會(huì)影響原始對(duì)象。
到此這篇關(guān)于python中b=a和b=a[:]區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)python b=a和b=a[:]區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python中的a=value1 or value2詳解
- python中的print()函數(shù)end=' '的使用及說明
- Python函數(shù)sort()與sorted()的區(qū)別及key=lambda?x:x[]的理解
- 思考分析Python運(yùn)算中?a+=b?和?a=a+b是否相等
- Python argparse中的action=store_true用法小結(jié)
- python之語句mode = 'test' if y is None else 'train'問題
- Python筆記之a(chǎn) = [0]*x格式的含義及說明
- 詳談python中subprocess shell=False與shell=True的區(qū)別
相關(guān)文章
python調(diào)用cmd命令時(shí)遇到的路徑空格問題和中文亂碼的解決
這篇文章主要介紹了python調(diào)用cmd命令時(shí)遇到的路徑空格問題和中文亂碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
跟老齊學(xué)Python之通過Python連接數(shù)據(jù)庫
現(xiàn)在在做python的時(shí)候需要用到數(shù)據(jù)庫,于是自己重新整理了一下數(shù)據(jù)庫的知識(shí),并且熟悉了python中MysqlDB模塊的功能和函數(shù)等接口,現(xiàn)在系統(tǒng)地來總結(jié)一下吧2014-10-10
在pycharm中使用git版本管理以及同步github的方法
今天小編就為大家分享一篇在pycharm中使用git版本管理以及同步github的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
學(xué)習(xí)python 之編寫簡(jiǎn)單乘法運(yùn)算題
這篇文章主要介紹了學(xué)習(xí)python 第一季 編寫簡(jiǎn)單乘法運(yùn)算題,需要的朋友可以參考下2016-02-02
python向json中追加數(shù)據(jù)的兩種方法總結(jié)
JSON用來存儲(chǔ)和交換文本信息,比xml更小/更快/更易解析,下面這篇文章主要給大家介紹了關(guān)于python向json中追加數(shù)據(jù)的兩種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Python @property及getter setter原理詳解
這篇文章主要介紹了Python @property及getter setter原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python模擬實(shí)現(xiàn)分發(fā)撲克牌
這篇文章主要為大家詳細(xì)介紹了python模擬實(shí)現(xiàn)分發(fā)撲克牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04

