1、字典復制:
dict = {'name':'wang', 'sex':'m', 'age':34, 'job':'it'} info = dict ##別名 (二個字典指向內存的同一地址空間) info1 = dict.copy() #shadow copy 淺復制(嵌套字典第一層獨立,第二層以下相關聯) import copy copy.copy() #shadow copy 淺復制 copy.deepcopy() #deep copy 深復制(完全獨立)
注:淺復制下的關聯只是針對字典初始狀態包含的嵌套對象,后新加的不會
例:
>>> dict {'info': ['a', 'b', 1, 2], 'job': 'it', 'sex': 'm', 'age': 40, 'name': 'wang'} >>> dict_alias = dict >>> dict_copy = copy.copy(dict) >>> dict_deep = copy.deepcopy(dict)
#添加、改變、刪除第一層的對象鍵值,淺復制和深復制都不受影響
>>> dict['age'] = 32 >>> del dict['sex'] >>> dict {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 32, 'name': 'wang'} >>> dict_alias {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 32, 'name': 'wang'} >>> dict_copy {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'} >>> dict_deep {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
#改變、刪除原有的第二層的對象鍵值,淺復制受影響,而深復制都不受影響
>>> dict['info'][2] = 100 >>> dict {'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 32, 'name': 'wang'} >>> dict_alias {'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 32, 'name': 'wang'} >>> dict_copy {'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'} >>> dict_deep {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
#添加第二層的對象,淺復制和深復制都不受影響
>>> dict['new'] = {'a':1, 'b':2, 'c':5} >>> dict {'info': ['a', 'b', 100, 2], 'name': 'wang', 'age': 32, 'job': 'it', 'new': {'a': 1, 'c': 5, 'b': 2}} >>> dict_alias {'info': ['a', 'b', 100, 2], 'name': 'wang', 'age': 32, 'job': 'it', 'new': {'a': 1, 'c': 5, 'b': 2}} >>> dict_copy {'info': ['a', 'b', 100, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'} >>> dict_deep {'info': ['a', 'b', 1, 2], 'job': 'it', 'age': 40, 'name': 'wang', 'sex': 'm'}
2、內置函數說明:
????? __name__:主文件時返回main,否則返回文件名,可用來判斷是否說主文件還是導入模塊;
????? __file__:文件的絕對路徑;
????? __doc__:文件開頭的注釋說明
例:
''' created by 2015-12-18 @author: kevin ''' if __name__ == '__main__': print('this is main file') print(__file__) print(__doc__)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
