Python?中的嵌套字典推導(dǎo)的使用及優(yōu)勢
Python 字典推導(dǎo)是一個強(qiáng)大的工具,允許您從現(xiàn)有的字典創(chuàng)建新的字典。 它類似于列表理解,但它不是創(chuàng)建列表,而是創(chuàng)建字典。
字典推導(dǎo)是創(chuàng)建字典的一種非常簡潔的方法,當(dāng)您想從幾個元組創(chuàng)建字典時(shí)非常有用,其中一個元組包含鍵和值。
在本篇文章中,我們將探索 Python 嵌套字典推導(dǎo)、它的使用以及在 Python 中使用它的優(yōu)勢。
Python字典推導(dǎo)
詞典理解是一個強(qiáng)大的工具,我們可以使用它對詞典執(zhí)行各種操作,例如過濾、轉(zhuǎn)換或創(chuàng)建新詞典。
字典推導(dǎo)允許您從其他字典或其他可迭代數(shù)據(jù)類型創(chuàng)建字典。 它們還允許您指定鍵值對而不僅僅是值。
詞典理解最常用于從現(xiàn)有詞典創(chuàng)建新詞典。 例如,您可以創(chuàng)建一個僅包含現(xiàn)有字典中的鍵或值的新字典。
您還可以創(chuàng)建一個新字典,其中包含來自兩個現(xiàn)有字典的鍵和值。 我們還可以使用字典推導(dǎo)來操縱現(xiàn)有的字典。
例如,您可以在字典中添加或刪除項(xiàng)目或更改現(xiàn)有項(xiàng)目的值。
square_dict= dict() for num in range(1,4): square_dict[num] = num*num print(square_dict) # dictionarycomprehension example square_dict= {num: num*num for num in range(1, 4)} print(square_dict)
輸出結(jié)果:
{1: 1, 2: 4, 3: 9}
{1: 1, 2: 4, 3: 9}
字典推導(dǎo)的句法
字典推導(dǎo)是一個方便的工具,用于從 Python 中的其他數(shù)據(jù)結(jié)構(gòu)創(chuàng)建字典。 語法簡單易讀 {key: value for (key, value) in iterable}。
代碼示例:
#The price of the item in dollars old_price = {'price of milk': 2, 'price of coffee': 4, 'price of bread': 3.5} dollar_to_pound = 0.76 new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()} print(new_price)
輸出:
{'price of milk': 1.52, 'price of coffee': 3.04, 'price of bread': 2.66}
Python嵌套字典推導(dǎo)
嵌套字典推導(dǎo)通過迭代一系列鍵值對,然后從這些鍵值對構(gòu)建一個新字典來工作。 新字典可以使用任何映射函數(shù)構(gòu)建,例如 dict.update 或 dict.fromkeys。
例如,考慮以下數(shù)據(jù)結(jié)構(gòu):
data = { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
要合成一個僅維護(hù)此數(shù)據(jù)結(jié)構(gòu)中的鍵的新字典,您可以使用以下嵌套字典推導(dǎo):
new_dict = {k: data[k] for k in data}
print(new_dict)
它會產(chǎn)生一個新的字典,看起來像這樣:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
您可以使用以下嵌套字典推導(dǎo)來合成一個僅維護(hù)此數(shù)據(jù)結(jié)構(gòu)中的值的新字典。
new_dict = {k: v for k, v in data.items()}
它會產(chǎn)生一個新的字典,看起來像這樣:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
如您所見,嵌套字典推導(dǎo)是一個強(qiáng)大的工具,可以快速高效地處理和操作復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。 這也是創(chuàng)建臨時(shí)數(shù)據(jù)結(jié)構(gòu)的一種簡單方法。
Python 中嵌套字典推導(dǎo)的語法
要創(chuàng)建嵌套字典推導(dǎo),請將另一個字典推導(dǎo)放在第一個字典推導(dǎo)的括號內(nèi)。
下面的例子創(chuàng)建了一個字典的字典,每個內(nèi)部字典包含不同水果的信息:
{key:value for key, value in outer_dict.items() if key =='fruit'}
{key:{'name':fruit['name'], 'colour':fruit['colour']} for key,fruit in outer_dict.items() if key == 'fruit'}
上面的第一個字典推導(dǎo)創(chuàng)建了一個字典,其中的鍵是水果的名稱,值是這些水果的顏色。
上面的第二個字典推導(dǎo)做同樣的事情,但增加了一個額外的嵌套級別,創(chuàng)建了一個字典的字典。
代碼示例:
dictionary ={ k1: {k2: k1 * k2 for k2 in range(1, 3)} for k1 in range(2, 5) } print(dictionary)
輸出結(jié)果如下:
{2: {1: 2, 2: 4}, 3: {1: 3, 2: 6}, 4: {1: 4, 2: 8}}
嵌套字典推導(dǎo)的優(yōu)點(diǎn)
在 Python 中使用嵌套字典推導(dǎo)有幾個優(yōu)點(diǎn)。
- 我們可以使用它們輕松地創(chuàng)建復(fù)雜的嵌套字典。
- 我們可以使用它們來高效地處理大量數(shù)據(jù)。
- 最后,我們可以使用它們在現(xiàn)有詞典的基礎(chǔ)上快速創(chuàng)建新詞典。
因此,了解嵌套字典推導(dǎo)式的工作原理,您可以在 Python 中快速高效地處理復(fù)雜數(shù)據(jù)。
到此這篇關(guān)于Python 中的嵌套字典推導(dǎo)的文章就介紹到這了,更多相關(guān)Python 字典推導(dǎo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?中的嵌套字典推導(dǎo)的使用及優(yōu)勢
- Python列表推導(dǎo)式,元組推導(dǎo)式,字典推導(dǎo)式,集合推導(dǎo)式
- Python 列表推導(dǎo)式與字典推導(dǎo)式的實(shí)現(xiàn)
- Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析
- Python推導(dǎo)式簡單示例【列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式】
- Python列表推導(dǎo)式、字典推導(dǎo)式與集合推導(dǎo)式用法實(shí)例分析
- Python2.6版本中實(shí)現(xiàn)字典推導(dǎo) PEP 274(Dict Comprehensions)
相關(guān)文章
Django零基礎(chǔ)入門之路由path和re_path詳解
這篇文章主要介紹了Django零基礎(chǔ)入門之路由path和re_path,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python實(shí)現(xiàn)正弦信號的時(shí)域波形和頻譜圖示例【基于matplotlib】
這篇文章主要介紹了Python實(shí)現(xiàn)正弦信號的時(shí)域波形和頻譜圖,涉及Python數(shù)學(xué)運(yùn)算與圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-05-05python如何實(shí)現(xiàn)lazy segment tree惰性段樹算法
LazySegmentTree(惰性段樹)算法是一種數(shù)據(jù)結(jié)構(gòu),專門用于高效處理區(qū)間查詢和更新操作,它利用延遲更新技術(shù)(LazyPropagation),僅在必要時(shí)執(zhí)行實(shí)際更新,以提升效率,此結(jié)構(gòu)將數(shù)組表達(dá)為二叉樹,每個節(jié)點(diǎn)表示一個數(shù)組區(qū)間2024-10-10