天天看點

【懶懶的Python學習筆記五】

在這一章中,你将學習到能夠将資訊關聯起來的Python字典,将學習如何通路和修改字典中的資訊,同時也會學習如何周遊字典中的資料。

一、一個簡單的字典

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

建立了一個存儲使用者資訊的字典,裡面存儲了使用者姓名、年齡和電話資訊,并依次列印這些資訊。

二、使用字典

在Python中,字典是一些了的鍵-值對,每個鍵都有一個值與之相關聯,你可以通過鍵來通路相關聯的值,鍵可以字元串,數字,元組等不可變對象,但不可以是list、dict、set等對象。與鍵相關聯的值可以是數字、字元串、清單乃至是字典,事實上可以将任何Python對象作為字典的值。

2.1 通路字典的值

要通路于鍵相關聯的值,可依次指定字典名和放在方括号中的鍵,如下圖:

【懶懶的Python學習筆記五】

【懶懶的Python學習筆記五】

2.2 添加鍵-值對

字典是一種動态結構,可随時根據需要添加鍵-值對,要添加鍵-值對,可依次指定字典名,用方括号括起來的鍵和對應的值。

【懶懶的Python學習筆記五】

首先我們建立了一個新的空的字典,然後依次添加‘name’,‘age’,‘tel’三個鍵-對,最後列印字典,結果如下:

【懶懶的Python學習筆記五】

我們發現最後列印的順序和我們添加的順序不同,實際上在Python中鍵-對的排列順序和添加順序無關,Python不關心鍵-對的添加順序二隻關心鍵-對的關聯關系。

2.3 修改字典中的值

修改字典中的值和上面類似,指定字典名和鍵以及該鍵相對應的新值即可。

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

2.4 删除鍵-對

對于字典中不需要的資訊,可使用del語句将對應的鍵-對删除,另外使用del語句删除的時候必須指定字典名和要删除的鍵。

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

三、周遊字典

一個Python字典有可能隻包含幾個鍵-對,也有可能包含成千上百的鍵-對,鑒于字典可能包含大量資料,Python支援對字典周遊并提供多種周遊方式,可周遊字典的所有鍵-對、鍵或值。

3.1 周遊所有的鍵-對

【懶懶的Python學習筆記五】

在上面的示例中,我們首先建立一個空字典,然後依次添加多個鍵-值對,然後編寫一個for循環用于周遊字典,for循環中聲明兩個變量用于存儲鍵-值對中的鍵和值,for語句的後半部包含字典名和方法items(),它傳回一個鍵-值對清單,接下來for循環依次将每個鍵-值對存儲到對應的變量中(注意變量的順序,鍵在前值在後)。值得注意的是,即使在周遊字典時,鍵-值對的傳回順序和存儲順序不同。結果如下:

【懶懶的Python學習筆記五】

3.2 周遊所有鍵

在不需要使用字典的值得時候,方法keys()很有用,如下:

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

實際上,周遊字典時會預設周遊所有的鍵,是以将上面的代碼修改成如下你會發現輸出不變:

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

顯示地使用方法keys()可以讓代碼更容易了解,但是你也可以選擇忽略它。當然keys()并不隻用于周遊,它傳回一個清單,其中包含字典中的所有鍵。周遊鍵的同時可以選擇按照順序周遊字典中的鍵。

【懶懶的Python學習筆記五】

我們在for循環中對傳回鍵的清單進行排序使傳回清單的鍵按照字母順序排列。

【懶懶的Python學習筆記五】

3.3 周遊字典中所有的值

如果感興趣的是字典中的值,可使用方法方法values(),它傳回一個值清單:

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

這種做法會提取字典中是以的值,但是沒有考慮到是否重複,為剔除重複項,可以使用集合(set),集合(set)類似于清單,隻不過每個元素都必須是獨一無二的。

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

四、嵌套

有時候需要将一系列字典存儲到清單中,或者将清單作為值存儲在字典中,這種稱為嵌套,你可以在清單中嵌套字典,也可以在字典中嵌套清單,甚至可以再字典裡嵌套字典。

4.1 清單存儲字典

字典user_1、user_2、user_3分别存儲三個使用者的資訊,而清單user_info存儲是以的使用者的使用者資訊,最後我們周遊清單将每個使用者資訊列印出來。

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

任何對清單的操作對字典清單都是适用的,包括通路清單元素、增加删除清單元素,周遊清單元素等。

4.2 字典存儲清單

有時候需要在字典中存儲清單,比如水果店裡可能會記錄不同顧客喜歡哪些水果,這個時候可以在字典中存儲清單了。

【懶懶的Python學習筆記五】
【懶懶的Python學習筆記五】

4.3 在字典沖存儲字典

可以在字典中存儲字典,但是這樣做會使得代碼複雜起來,比如某網站存儲多個使用者資訊,每個使用者有獨特的使用者ID,将ID作為鍵,将每個使用者資訊存儲在一個字典裡,就像下面一樣:

【懶懶的Python學習筆記五】

首先我們定義一個使用者字典,字典的鍵分别是‘aa22144’、‘kk14154’、'va1918'分别是使用者ID,每個鍵的值是一個字典存儲使用者資訊,每個字典分别存儲了姓名、年齡、性别等資訊。在大多數情況下,字典嵌套字典很容易出現錯誤,是以在能不使用字典嵌套字典的時候盡量不使用!