天天看點

7. ✎會查新華字典不?會。Python字典已經掌握了七、查字典怎麼查,Python 字典就怎麼用

學程式設計要簡單、粗暴。更要有效,很多時候學的越多,忘得越快。但程式設計總有那麼一天頓悟的時候,而頓悟的契機目前就是建立在你跟橡皮擦堅持打卡 100 天,在評論區堅持跟橡皮擦卡學習的朋友,在 100 天之後,橡皮擦将送出

神秘大獎

七、查字典怎麼查,Python 字典就怎麼用

已經學完了清單與元組,那這兩個都是按照順序排列的,是以可以用索引取到值,本篇部落格要學習的是字典,由上文可知,字典肯定就是不能按照索引取到值,就是沒順序,非序列的資料結構。

7.1 字典的基本操作

7.1.1 字典的定義

字典可以看成是一種清單型的資料結構,也是可以容納很多其它資料類型的容器,但字典當中的元素使用 “鍵-值” 來表示的,而且“鍵-值” 成對出現,鍵與值之間存在的關系可以描述為,通過鍵取值(這個是字典的核心概念,就像通過部首查字典一樣的)。

字典的文法格式如下:

# my_dict 是一個變量名
my_dict = {鍵1:值1,鍵2:值2......}           

其中字典的值即上述格式中的

值1

值2

可以是數值、字元串、清單、元組等内容。

例如可以通過字典來表示一個中英對照表。

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
print(my_dict)
print(type(my_dict))           

輸出結果為:

{'red': '紅色', 'green': '綠色', 'blue': '藍色'}
<class 'dict'>           

現在需要對字典再次建立一下認知,字典就是建立了鍵到值的一一對應關系。

7.1.2 擷取字典的值

字典是通過鍵值定義的,通過鍵去擷取值,是以字典中不允許出現重複的鍵。擷取字典中值的文法格式為:

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
print(my_dict["red"])           

仔細看非常類似清單中元素的擷取,隻是将索引位置替換為了

7.1.3 字典中增加元素、修改元素、删除元素

增加元素

在字典中增加一個元素非常簡單,隻需要通過下述文法格式即可實作。

my_dict[鍵] = 值           

例如在剛才的顔色翻譯字典中在增加一個橙色的對應鍵值,代碼如下:

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
my_dict["orange"] = "橙色"

print(my_dict)           

如果希望在字典中增加更多的鍵值對應關系,依次編寫下去即可。

修改元素

修改字典中元素記住準确的應該叫做修改元素的值,例如将代碼中

red

對應的值

紅色

修改為

淺紅色

,通過下述代碼完成。

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
my_dict["red"] = "淺紅色"

print(my_dict)           

通過

my_dict[要修改的鍵] = 新的值

來進行修改即可完成任務。

删除元素

如果想要删除字典中某一個具體的元素,隻需要通過

del

關鍵字加上

my_dict[待删除元素的鍵]

即可完成。

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
del my_dict["red"]

print(my_dict)           

以上内容可以删除特定元素,使用字典的一個

clear

方法,可以将字典清空。

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
my_dict.clear()

print(my_dict)           

以上内容會輸出

{}

該符号表示空字典。

除了将字典清空以外,還可以直接将字典變量删除。

my_dict = {"red": "紅色", "green": "綠色", "blue": "藍色"}
del my_dict

print(my_dict)           

删除字典變量之後,在列印

my_dict

程式直接報錯,提示

name 'my_dict' is not defined

變量未定義,在删除字典的時候一定要注意别誤删整個字典,除非程式要求這麼實作。

7.1.4 字典的補充知識

空字典

剛才其實已經提及了一個空字典是如何建立的,建立空字典的文法如下:

my_dict = {}           

空字典一般用于邏輯占位,好複雜啥叫邏輯占位,就是先聲明後面在進行擴充的一個小技巧。

擷取字典元素數量

清單與元組都可以使用

len

來擷取元素數量,同樣的方法适用于字典,文法格式如下:

my_dict_length = len(my_dict)           

空字典的元素數量為 0,可以進行嘗試一下。

字典可讀性書寫

在很多時候一個程式不是由一個人可以獨立完成,需要一個團隊進行配合,如何讓自己的代碼可讀性(别人能看懂)變高在代碼編寫的時候就變的非常重要了。字典為了增加可讀性,建議一行定義一個元素。

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}

print(my_dict)           

7.2 字典的周遊

字典也需要周遊輸出裡面的每一個元素,對于字典咱已經知道是由鍵值對組成,那對應的周遊輸出内容就有所有鍵值,所有鍵,所有值。

7.2.1 周遊字典的鍵 - 值

調用字典的 items 方法可以擷取字典的所有鍵值,例如下述代碼:

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}

print(my_dict.items())           

該内容輸入為:

dict_items([('red', '紅色'), ('green', '綠色'), ('blue', '藍色')])           

接下來循環輸出字典内容,有幾種不同的寫法,先嘗試編寫如下代碼,在進行知識點學習。

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}

# 直接對 my_dict 進行周遊
for item in my_dict:
    print(item)

# 周遊 my_dict 的 items 方法
for item in my_dict.items():
    print(item)

# 周遊 my_dict 的 items 方法,并用 key 與 value 接收
for key,value in my_dict.items():
    print("鍵:{},值:{}".format(key,value))           

以上三種輸出内容請自行查閱。

  1. 第一種輸出的是所有的鍵;
  2. 第二種将每個鍵值對當做一個元組輸出;
  3. 第三種通過變量與元組之間的指派直接将鍵與值輸出。

關于變量與元組之間的指派可以參考下屬代碼:

a,b = (1,2)
print(a)
print(b)           

注意通過該方式進行變量的指派一定要将左側的變量與右側元組中的元素做好對應,一個變量對應元組中的一項,順序也對應。如果不對應就會出現下述錯誤

ValueError: too many values to unpack

7.2.2 周遊字典的鍵

上文學習到的是周遊字典的鍵值,你可以直接通過 keys 方法擷取字典的所有鍵,例如下述代碼:

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}


for key in my_dict.keys():
    print(key)           

7.2.3 周遊字典的值

有 keys 方法擷取鍵,對應的就是通過 values 擷取所有值。

這個地方因為和上述内容太相似了,如果想成為一個合格的程式員,學習初期每天的代碼量是不能減少的,是以本部分留給你啦。

7.3 字典與其他資料類型的結合

先要認識到字典是一個容器,它可以包含任意資料類型。字典也是一種資料類型,它可以被清單與字典本身等容器類包含。

很繞是吧,其核心是非常簡單的,看完代碼你就明白了。

7.3.1 清單嵌套字典

直接看效果,一個清單可以嵌套字典。

my_list = [{"name": "橡皮擦", "age": 18},
           {"name": "大橡皮擦", "age": 20}]
print(my_list)
print(my_list[0])           

7.3.2 字典嵌套清單

字典中元素的值可以是清單,具體如下:

my_dict = {"colors": ["紅色","綠色"],
           "nums": [1,2,3,4,5],
           "name": ["橡皮擦"]}
print(my_dict)           

7.3.3 字典嵌套字典

字典的值可以為任意資料類型,那自然可以是字典類型,是以下述代碼你應該可以閱讀。

my_dict = {"colors": {"keys": ["紅色", "綠色"]},
           "nums": [1, 2, 3, 4, 5],
           "name": ["橡皮擦"]}
print(my_dict)           

以上内容都是非常簡單的寫法,總結一句話都是套娃。

7.4 字典的方法

字典有一些特殊的方法需要單獨說明一下,如果想要檢視字典所有的方法,依據使用

dir

内置函數調用。

7.4.1 fromkeys 方法

該方法目的是建立一個字典,文法格式如下:

# 注意該方法直接通過 dict 調用
# seq 是一個序列,可以為元組,也可以是字典
my_dict = dict.fromkeys(seq)           

接下來就通過該方法實際建立一個字典。

my_list = ['red', 'green']

my_dict = dict.fromkeys(my_list)
# 以下内容輸出 {'red': None, 'green': None}
print(my_dict)

my_dict1 = dict.fromkeys(my_list, "字典的值")
print(my_dict1)           

第一種方式發現輸出的字典中所有值為 None(Python 中的特殊值,相當于空),該内容是由于沒有設定字典預設值,預設為 None,如果需要在定義字典的時候初始化該值,在方法中的第二個參數指派即可。

7.4.2 get 方法

get 方法用于通過鍵擷取值,如果不存在可以設定傳回一個預設值,例如下述代碼:

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}
print(my_dict.get("red"))  # 傳回紅色
print(my_dict.get("red1")) # 傳回 None

print(my_dict.get("red1","設定一個找不到傳回的預設值"))           

7.4.3 setdefault 方法

setdefault 方法與 get 方法用途基本一緻,差別是當 setdefault 搜尋不到指定鍵時,會自定将鍵值插入字典,例如下述代碼:

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}
print(my_dict.setdefault("red")) # 傳回紅色
print(my_dict.setdefault("orange")) # 傳回 None
print(my_dict) # 輸出 {'red': '紅色', 'green': '綠色', 'blue': '藍色', 'orange': None}           

最後一行代碼輸出的結果中已經包含了鍵

orange

與值

None

,你可以在使用

dict.setdefault("orange","橙色")

測試一下預設值。

7.4.4 pop 方法

該方法用于删除字典元素,文法格式如下:

ret_value = dict.pop(key[,default])           

既然已經寫出了這種标準格式,那先補充一下文法格式的規範,例如

dict.pop(key[,default])

key

表示必填參數,

[]

包括的參數為非必填參數,這樣你可以了解上述文法格式内容是什麼了。

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}

# 删除指定項
ret_value = my_dict.pop('red')
# 輸出被删除的紅色
print(ret_value)
# 檢視字典 {'green': '綠色', 'blue': '藍色'}
print(my_dict )           

在使用

pop

方法的時候如果找到

key

,就會删除該鍵值對,如果找不到

key

會傳回

defalut

設定的值,如果該值沒有設定,會報錯。

my_dict = {"red": "紅色",
           "green": "綠色",
           "blue": "藍色"}

# 删除指定項,如果沒有設定找不到傳回的值,直接報錯
ret_value = my_dict.pop('red2')

# 删除指定項,找不到 key1 傳回後面設定的值
ret_value = my_dict.pop('red1',"找不到傳回的值")           

7.5 這篇部落格的總結

字典同清單、元組一樣都是 Python 中非常重要的資料類型,字典因為鍵值對的概念存在導緻其使用場景更多,初學階段橡皮擦給大家的意見就是好好的打打代碼,先建立對 Python 的整體認知,滾雪球學 Python,這隻是第一遍滾。

最後一碗毒雞湯

我曾天真地以為金錢是萬能的,後來才發現,金錢不是萬能的,是無所不能的。 O(∩_∩)O 哈哈~

🌸🌸🌸🌸🌸🌸🌸🌸

今天是持續寫作的第 6 / 100 天。

如果你有想要交流的想法、技術,歡迎在評論區留言。