Python3.7之字典


一、Python 字典(Dictionary) fromkeys()方法

用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值,返回一個新字典。

seq = ('Google', 'Runoob', 'Taobao')
 
dict = dict.fromkeys(seq)
print "新字典為 : %s" %  str(dict)
 
dict = dict.fromkeys(seq, 10)
print "新字典為 : %s" %  str(dict)
'''
新字典為 : {'Google': None, 'Taobao': None, 'Runoob': None}
新字典為 : {'Google': 10, 'Taobao': 10, 'Runoob': 10}
'''

二、字典常見操作

1.dic.iteritems(), dic.iterkeys(), dic.itervalues()

與他們對應的非迭代方法一樣,不同的是它們返回一個迭代子,而不是一個列表。

2.dic.clear()

清空字典

3.dic.update(dic2)

將字典dic2的鍵值對添加到字典dic中

4.dic.get(key, default=None),dic.pop(key[, default])與dic.setdefault(key, default=None)

get返回字典中key對應的值,若key不存在字典中,則返回None;

pop如果字典中存在key,刪除並返回key對應的value;若key不存在,且沒有給出default的值,則引發keyerror異常。

setdefault和 get類似, 如果鍵不存在於字典中,將會添加鍵並將值設為默認值。

dict = {'runoob': '菜鳥教程', 'google': 'Google 搜索'}
 
print "Value : %s" %  dict.setdefault('runoob', None)
print "Value : %s" %  dict.setdefault('Taobao', '淘寶')
'''
Value : 菜鳥教程
Value : 淘寶
'''

5.copy()函數

copy() 函數返回一個字典的淺復制。

dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
dict2 = dict1.copy()
print ("新復制的字典為 : ",dict2)
'''
新復制的字典為 :  {'Age': 7, 'Name': 'Runoob', 'Class': 'First'}
'''

直接賦值和 copy 的區別

dict1 =  {'user':'runoob','num':[1,2,3]}
 
dict2 = dict1          # 淺拷貝: 引用對象
dict3 = dict1.copy()   # 淺拷貝:深拷貝父對象(一級目錄),子對象(二級目錄)不拷貝,還是引用
 
# 修改 data 數據
dict1['user']='root'
dict1['num'].remove(1)
 
# 輸出結果
print(dict1)
print(dict2)
print(dict3)
'''
{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'runoob', 'num': [2, 3]}
'''

參考鏈接:https://www.runoob.com/python3/python3-att-dictionary-copy.html

Python 直接賦值、淺拷貝和深度拷貝解析:

https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html


免責聲明!

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



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