Python-字典引用賦值變量之發現


  1. python中把一個字典的value賦值給變量,修改變量,被引用是字典的value也會被修改。
    值的注意的是,字典里的Key和Value都是對象的引用,不是對象本身。引用沒有變,變得只是引用地址空間的值。
    實測該情況,對於value為字典或者列表的引用賦值,之后修改后,原有字典的value被修改。
    猜測字典,列表,集合引用的是地址空間里的值,這些數據類型會被修改。
d1 = {'k1':[1,2,3,4,5]}
t1 = d1['k1']
t1[0] = 9
print(d1['k1'])     # [9, 2, 3, 4, 5]
#
d2 = {'k1':'v1'}
t2 = d2['k1']
print(t2)            # v1
t2 = 'v2'
print(d2)           # {'k1': 'v1'}
#
d3 = {'k1':{'kk1':'v1'}}
t3 = d3['k1']
print(t3)            # {'kk1': 'v1'}
t3['kk1'] = 'v2'
print(d3)           # {'k1': {'kk1': 'v2'}}
  1. 對於不需要改變引用字典的內部結構的情況,可以使用深拷貝
import copy
d4 = {'k1':[1,2,3,4,5]}
t4 = copy.deepcopy(d4['k1'])
t4[0] = 9
print(d4)   # {'k1': [1, 2, 3, 4, 5]}


免責聲明!

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



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