您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python字典實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python字典實例分析文章都會有所收獲,下面我們一起來看看吧。
Python 中的字典允許我們存儲兩組值之間的一系列映射,即鍵和值。
字典中的所有項目都包含在一對花括號內{}。
字典中的每一項都是鍵和值之間的映射——稱為鍵值對。
鍵值對通常稱為字典項。
您可以使用相應的鍵訪問這些值。
這是字典的一般示例:
my_dict = {"key1":<value1>,"key2":<value2>,"key3":<value3>,"key4":<value4>}
在上面的例子中,
字典my_dict包含 4 個鍵值對(項目)。
"key1"通過"key4"是4個鍵。
您可以使用my_dict["key1"]to access <value1>、my_dict["key2"]to access<value2>等。
現在我們知道了 Python 字典是什么,讓我們繼續學習字典理解。
在本節中,讓我們使用字典理解從可迭代對象(例如列表或元組)創建 Python 字典。
如果我們選擇動態生成鍵或值,我們可以只使用一個可迭代對象來創建一個新的 Python 字典。
當我們選擇動態生成值時,我們可以使用迭代中的項目作為鍵,反之亦然。
一般語法如下所示。請注意 <> 之間的名稱是實際變量名稱的占位符。
<dict_name> = {<new_key>:<new_value> for <item> in <iterable>}
讓我們解析上面的語法。
{} 表示我們正在填充字典。
對于迭代中的每個項目,我們在字典中生成一個鍵值對。
? 是時候舉個簡單的例子了。
假設我們有一個訪問我們商店的客戶列表,我們想為每個客戶提供隨機折扣。我們希望折扣值介于 1 美元到 100 美元之間。
在 Python 中,random.randint(i,j)返回i和之間的隨機整數j,其中兩個端點都包含在內。
因此,我們可以使用randint()Python 的 random 模塊中的函數為列表中的每個客戶生成 $1 到 $100 之間的折扣。
下面的代碼片段展示了我們如何discount_dict從客戶列表中創建一個新字典。
import random
customers = ["Alex","Bob","Carol","Dave","Flow","Katie","Nate"]
discount_dict = {customer:random.randint(1,100) for customer in customers}
print(discount_dict)
#Output
{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}
上面的示例執行以下操作:
循環遍歷客戶列表 ( customers),
使用每個客戶的姓名作為鍵,并且
生成 1 美元到 100 美元之間的隨機折扣作為密鑰的值。
如果我們已經有包含鍵和值的預定義可迭代對象怎么辦?假設您有兩個列表,list_1并且list_2–list_1包含鍵和list_2相應的值。
我們現在可以使用 Python 的zip()函數來壓縮這兩個列表以生成鍵值對。
注意:該zip函數接受一系列可迭代對象作為參數,并返回一個元組迭代器,如下圖所示。
所以,第一個元組是第一個鍵值對,第二個元組是第二個鍵值對,一般來說,第i個元組是第i個鍵值對。
在這種情況下,字典理解采用以下形式:
<dict_name> = {<new_key>:<new_value> for (key,value) in zip(list1,list2)}
解析上述語法非常簡單。
鍵和值可作為元組使用,因為我們已使用該zip()函數將它們壓縮在一起。
現在,我們遍歷這個元組迭代器來獲取字典的鍵值對。
? 是時候看另一個快速示例了。
假設我們想創建一個我們城市每周溫度的字典。天數應該是鍵,與天數對應的溫度(攝氏度)應該是值。
假設我們有兩個列表中的天數和溫度,如下所示。
days = ["Sunday", "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
temp_C = [30.5,32.6,31.8,33.4,29.8,30.2,29.9]
我們現在可以繼續使用字典理解來創建每周溫度的字典。
# Creating a dictionary of weekly tempertaures
# from the list of temperatures and days
weekly_temp = {day:temp for (day,temp) in zip(days,temp_C)}
print(weekly_temp)
# Output
{'Sunday': 30.5, 'Monday': 32.6, 'Tuesday': 31.8, 'Wednesday': 33.4, 'Thursday': 29.8, 'Friday': 30.2, 'Saturday': 29.9}
在上面的示例中,我們使用該zip()函數將日期和溫度列表壓縮在一起。我們現在可以通過使用任何一天作為鍵來訪問字典來獲取當天的溫度,如下所示:
weekly_temp["Thursday"]
# Output
29.8
到目前為止,我們已經看到了如何使用鍵來訪問值。我們如何訪問字典中的所有鍵值對?
為此,我們可以調用items()字典上的方法來獲取所有鍵值對,如下面的代碼片段所示。
discount_dict.items()
# Output
dict_items([('Alex', 16), ('Bob', 26), ('Carol', 83), ('Dave', 21), ('Flow', 38), ('Katie', 47), ('Nate', 89)])
假設我們已經有一個 Python 字典。
但是,我們想創建一個新字典,其中僅包含我們字典中滿足特定條件的項目。字典理解在這方面非常方便。
<dict_name> = {<new_key>:<new_value> for (key,value) in <dict>.items() if <condition>}
讓我們解析上面的語法。我們使用該items()方法并獲取現有字典中的所有鍵值對。
我們訪問第一個字典項,并檢查condition計算結果是否為 True。
如果條件為True,我們將第一項添加到我們的新字典中。
然后我們對現有字典中的所有項目重復這些步驟。
? 讓我們舉一個例子來看看這是如何工作的。
讓我們以之前創建discount_dict字典的折扣示例為基礎。讓我們discount_dict再看看我們的字典。
{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}
我們看到一些客戶很幸運地獲得了比其他客戶更高的折扣。讓我們解決這種差異,讓我們所有的客戶都滿意。
我們現在想為折扣低于 30 美元的客戶提供下次購買時 10% 的折扣。
在這種情況下,我們正在customer_10從我們的discount_dict字典中創建一個新字典。
customer_10 = {customer:discount for (customer, discount) in discount_dict.items() if discount<30}
print(customer_gifts)
# Output
{'Alex': 16, 'Bob': 26, 'Dave': 21}
上面的代碼執行以下操作:
對于我們 中的每件商品discount_dict,它都會利用折扣的價值。
如果折扣低于 30 美元,它會將相應的customer:discount一對添加到我們的新字典中customer_10。
請注意如何將Alex、Bob和Davewho 的折扣低于 30 美元添加到新詞典中。
關于“Python字典實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python字典實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。