python中引用和賦值的區(qū)別及說明
1.引用
python中,賦值操作會產(chǎn)生相同對象的多個引用,如果在原位置修改這個可變對象時,可能會影響程序其他位置對這個對象的引用。
>>> x = [1, 2, 3] >>> y = [x, 4, 5] >>> z = [x, 6] >>> y [[1, 2, 3], 4, 5] >>> z [[1, 2, 3], 6] # 改變被多次引用的變量x >>> x[0] = 2 >>> y [[2, 2, 3], 4, 5] >>> z [[2, 2, 3], 6]
引用類似于其他語言的“指針”。
通過引用,就可以在程序范圍內(nèi)任何地方傳遞大型對象而不必在途中進(jìn)行開銷巨大的賦值操作。
2.賦值
賦值與引用不同,復(fù)制后會產(chǎn)生一個新的對象,原對象修改后不會影響到新的對象。
賦值的方法:
沒有起點(diǎn)和重點(diǎn)的分片法:
>>> A = [1, 2, 3] >>> B = A[:] # B賦值A(chǔ) >>> B [1, 2, 3] # 改變A的值 >>> A[0] = 2 >>> A [2, 2, 3] >>> B [1, 2, 3]
字典、集合或列表的copy方法:
>>> a = [1, 2, 3] >>> b = a.copy() # b賦值a # 改變a的值 >>> a[0] = 2 >>> a [2, 2, 3] >>> b [1, 2, 3]
list()、dict()、set()等內(nèi)置函數(shù)可以進(jìn)行賦值:
>>> x = [1, 2] >>> y = list(x) >>> x[1] = 3 #Python學(xué)習(xí)交流群:711312441 >>> x [1, 3] >>> y [1, 2]
不過需要注意的是,這種賦值僅能做到頂層賦值,如果出現(xiàn)嵌套的情況下仍不能進(jìn)行深層賦值。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
selenium+python自動化78-autoit參數(shù)化與批量上傳功能的實現(xiàn)
這篇文章主要介紹了selenium+python自動化78-autoit參數(shù)化與批量上傳,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03Python標(biāo)準(zhǔn)庫之日期、時間和日歷模塊
這篇文章介紹了Python標(biāo)準(zhǔn)庫之日期、時間和日歷模塊,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作
這篇文章主要介紹了Python連接數(shù)據(jù)庫并批量插入包含日期記錄的操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06如何解決jupyter notebook無法導(dǎo)入自己安裝的包
這篇文章主要介紹了如何解決jupyter notebook無法導(dǎo)入自己安裝的包問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07關(guān)于Python中的 oct 函數(shù)與 min 函數(shù)
本文主要介紹了Python oct 函數(shù)與 min 函數(shù);oct 函數(shù)是 Python 內(nèi)置函數(shù),主要將一個整數(shù)轉(zhuǎn)為八進(jìn)制,與 ord 函數(shù) / chr 函數(shù) 有點(diǎn)類似;min 函數(shù)返回給定參數(shù)的最小值,參數(shù)可以為序列語法,感興趣的小伙伴請繼續(xù)閱讀下文2021-09-09python3.6利用pyinstall打包py為exe的操作實例
今天小編就為大家分享一篇python3.6利用pyinstall打包py為exe的操作實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10