python字典詳解


字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:

dict = {key1 : value1, key2 : value2 }

 

1.鍵一般是唯一的,如果重復最后的一個鍵值對會替換前面的,值不用是唯一的,所以值可以是相同的。

2.值可以取任何數據類型,但鍵必須不可變,所以可以用數字,字符串或元組充當,所以用列表,集合就不行,但卻也可以用函數,對象

訪問字典里的值

把相應的鍵放入熟悉的方括弧,如下實例:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}
print( dict['Name'], dict['Age'])

如果用字典里沒有的鍵訪問數據,會拋出Keyerror異常,如下:

dict['simon']: 
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print "dict['simon']: ", dict['simon']
KeyError: 'simon'

修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:

dict['Name']='Simon'      #字典已有Name的key,所以是更改操作
dict['gender']='male'      #字典不存在gender的key,所以是增加鍵值對操作

刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操作。

顯示刪除一個字典用del或者pop命令,但需要注意的是del無返回值,pop會返回被刪除的key所對應的value,如下實例:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}
del dict['Class'] v=dict.pop('Name')
print(dict,v)
輸出: {'Age': 17} Sora

字典內置函數&方法

Python字典包含了以下內置函數:

cmp(dict1,dict2)  #比較兩個字典元素,如果兩個字典的元素相同返回0,如果字典dict1大於字典dict2返回1,如果字典dict1小於字典dict2返回-1。
len(dict)        #計算字典元素個數,即鍵的總數。
str(dict)        #輸出字典可打印的字符串表示。
type(dict)    #返回輸入的變量類型,如果變量是字典就返回字典類型。

 Python字典包含了以下內置方法:

dict.clear()         #    #刪除字典內所有元素
dict.copy()         #    #返回一個字典的淺復制
dict.fromkeys(seq[, val])    #創建一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應的初始值
dict.get(key, default=None)    #返回指定鍵的值,如果值不在字典中返回default值
dict.has_key(key)    #如果鍵在字典dict里返回true,否則返回false
dict.items()         #以列表返回可遍歷的(鍵, 值) 元組數組
dict.keys()         #以列表返回一個字典所有的鍵
dict.setdefault(key, default=None)和get()         #類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
dict.update(dict2)    #把字典dict2的鍵/值對更新到dict里
dict.values()         #以列表返回字典中的所有值
pop(key[,default])    #刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
popitem()         #返回並刪除字典中的最后一對鍵和值。

 

 in 操作符

Python 字典 in 操作符用於判斷 是否存在於字典中,如果鍵在字典 dict 里返回 true,否則返回 false。

而 not in 操作符剛好相反,如果鍵在字典 dict 里返回 false,否則返回 true。

dict = {'Name': 'nb', 'Age': 17}
 
# 檢測鍵 Age 是否存在
if  'Age' in dict:
    print("鍵 Age 存在")
else :
    print("鍵 Age 不存在")

 

 

 

注意:

字典在被迭代時,不可以直接對其元素進行刪除或者增加(但可以修改):

 

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}
for i,k in dict.items():
    del dict[i] #  dict.pop(i)
print(dict)

報錯(大意是字典長度在迭代時被更改): # 由此也驗證,字典在迭代時是不能刪或者增的
RuntimeError: dictionary changed size during iteration

 

如果在迭代中刪除字典的元素, 可使用以下方法:

dict = {'Name': 'Sora', 'Age': 17, 'Class': 'First'}
for key in list(dict):
    dict.pop(key)
print(dict)
輸出:
{}

 


免責聲明!

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



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