Python基礎之字典

 字典是Python中常用的數據類型。他通過鍵值對的方式存儲在{}中,爲日常的數據處理提供了極大的便利。

        我們先來看下字典的組成形式:首先,一個字典由一個花括號組成{},花括號內有n多個鍵值對組成,鍵值對以:隔開,如下所示:

A = {key1:value1,key2:value2,key3:value3}

        key表示鍵,value表示值,key在一個字典裏面是唯一的,而value是任意的,key是不變的,value是任意的。

        這兩句話看起來是差不多的,但還是有點小區別,先講下key,"唯一"就像你的身份證號碼,每個人都不一樣,是獨一無二的,而"不變"是指key的數據類型是不變的,之前我們在Python的數據類型中講過,元組、字符串、數值、集合,這幾個類型是不變的。value是任意的則指你可以指定任意類型的,可以重複的,想給他怎樣賦值就怎樣賦值,要什麼類型就什麼類型。但不能什麼都不給,不然會報錯。PS.如果你定義了重複的key,則以最後一個爲準。

        一、瞭解了字典的定義,我們來講下如何創建一個字典:

        1.直接定義:

a = {1:"a",2:"b"}
print (a)
>>>{1: 'a', 2: 'b'}

        按照我們最初的定義一樣,直接按鍵值對的方式進行創建

        2.通過dict()函數來創建字典

# ①傳入關鍵字
a = dict(pyhton=1,小黑屋=2)
print(a)
>>>{'pyhton': 1, '小黑屋': 2}
# ②映射函數方式來構造字典
b = dict(zip([1, "python", '小黑屋'], [1, 2, "3"]))
print(b)
>>>{1: 1, 'python': 2, '小黑屋': '3'}
# ③可迭代對象方式來構造字典
c = dict([(1, 1), ('2', "2"), (3, "3")])
print (c)
>>>{1: 1, '2': '2', 3: '3'}

        ①中傳入的key只能是字符串,但是不需要加引號,②則像我們的數學中的函數一樣,通過映射的方法來生成,兩者一一對應,這裏就跟就不像①一樣key只能是字符串,③通過迭代對象的方式,同樣key不會受限制

       二、訪問字典的值

# ①直接訪問
a = {1:"python", 2:"小黑屋"}
print (a[1])
>>>python
print (a[2])
>>>小黑屋
# ②get函數訪問
b = {1:"python", 2:"小黑屋"}
print (b.get(3))
>>>None
print (b.get(3,"666"))
>>>666

        我們可以直接通過 變量名[key] 這樣的方式來訪問字典的值。也可以通過函數get()的方式來訪問,用get()的話,如果訪問到不存在的鍵值得話,返回的是None,當然,你也可以給他設置默認值,如果該鍵值不存在,則訪問一個固定好的值,如上面的666.

        三、增加/修改字典的值

a = {1:"python", 2:"小黑屋"}
print (a[1])
>>>python
# 修改字典的值
a[1]  = "小黑屋"
print(a[2])
>>>小黑屋
# 增加字典的值
a[3] = "666"
print(a)
>>>{1: '小黑屋', 2: '小黑屋', 3: '666'}

        增加/修改也是比較簡單,就直接跟變量賦值一樣,如果key是原字典就有的,就是修改value的值,如果沒有,就是增加字典的鍵值對。 

        四、刪除字典的值

①用 del 刪除單個值
a = {1:"python", 2:"小黑屋"}
del a[1]
print(a)
>>>{2: '小黑屋'}
②用clear刪除字典所有值
b = {1:"python", 2:"小黑屋"}
b.clear()
print(b)
>>>{}
③通過pop刪除單個值
c = {1:"python", 2:"小黑屋"}
c.pop(1)
print(c)
>>>{2: '小黑屋'}

         五、獲取字典的鍵和值

a = {1:"python", 2:"小黑屋"}
①獲取字典的所有key
print(a.keys())
>>>dict_keys([1, 2])
②獲取字典的所有values
print(a.values())
>>>dict_values(['python', '小黑屋'])
③遍歷字典的keys
for i in a.keys():
   print(i)
>>>1
>>>2
④遍歷字典的values
for j in a.values():
   print(j)
>>>python
>>>小黑屋
⑤獲取字典的鍵值對
b = {1:"python", 2:"小黑屋"}
print(b.items())
>>>dict_items([(1, 'python'), (2, '小黑屋')])
⑥遍歷字典的鍵值對
for i in b.items():
   print(i)
>>>(1, 'python')
>>>(2, '小黑屋')
⑦遍歷字典的鍵和值
for i,v in b.items():
   print("key=%s:value=%s" %(i,v))
>>>key=1:value=python
>>>key=2:value=小黑屋

        六、字典自帶的內置方法

dict.fromkeys(seq[, value]))
# 創建一個字典,以seq中元素爲key,以value中的值爲默人value(不寫爲None)
# seq可以爲列表、元組、集合
seq = ["python","小黑屋"]
a = dict.fromkeys(seq)
print(a)
>>>{'python': None, '小黑屋': None}
b = dict.fromkeys(seq,1)
print(b)
>>>{'python': 1, '小黑屋': 1}
dict.has_key(key)
# 判斷key是否在字典中,是返回True,否返回False
# 不過在Python已經不能用,改爲if key in dict:
# 如果key在dict裏則結果爲True,不在則爲False
a = {"python":1, "小黑屋":2}
if "python" in a:
   print(666)
>>>666
dict.update(dict2)
# 將一個字典更新到另一個字典中
a = {1:"python", 2:"小黑屋"}
b = {3:"你好", 4:"小黑"}
a.update(b)
print(a)
>>>{1: 'python', 2: '小黑屋', 3: '你好', 4: '小黑'}

        以上就是Python字典中常用到的一些知識點。

歡迎大家關注我的微信公衆號Python小黑屋

python學習資源/有趣的python文章/python學習筆記


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章