Python?中的嵌套字典推導(dǎo)的使用及優(yōu)勢(shì)
Python 字典推導(dǎo)是一個(gè)強(qiáng)大的工具,允許您從現(xiàn)有的字典創(chuàng)建新的字典。 它類似于列表理解,但它不是創(chuàng)建列表,而是創(chuàng)建字典。
字典推導(dǎo)是創(chuàng)建字典的一種非常簡(jiǎn)潔的方法,當(dāng)您想從幾個(gè)元組創(chuàng)建字典時(shí)非常有用,其中一個(gè)元組包含鍵和值。
在本篇文章中,我們將探索 Python 嵌套字典推導(dǎo)、它的使用以及在 Python 中使用它的優(yōu)勢(shì)。
Python字典推導(dǎo)
詞典理解是一個(gè)強(qiáng)大的工具,我們可以使用它對(duì)詞典執(zhí)行各種操作,例如過濾、轉(zhuǎn)換或創(chuàng)建新詞典。
字典推導(dǎo)允許您從其他字典或其他可迭代數(shù)據(jù)類型創(chuàng)建字典。 它們還允許您指定鍵值對(duì)而不僅僅是值。
詞典理解最常用于從現(xiàn)有詞典創(chuàng)建新詞典。 例如,您可以創(chuàng)建一個(gè)僅包含現(xiàn)有字典中的鍵或值的新字典。
您還可以創(chuàng)建一個(gè)新字典,其中包含來自兩個(gè)現(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)是一個(gè)方便的工具,用于從 Python 中的其他數(shù)據(jù)結(jié)構(gòu)創(chuàng)建字典。 語法簡(jiǎn)單易讀 {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)通過迭代一系列鍵值對(duì),然后從這些鍵值對(duì)構(gòu)建一個(gè)新字典來工作。 新字典可以使用任何映射函數(shù)構(gòu)建,例如 dict.update 或 dict.fromkeys。
例如,考慮以下數(shù)據(jù)結(jié)構(gòu):
data = {
'a': 1,
'b': 2,
'c': 3,
'd': 4
}要合成一個(gè)僅維護(hù)此數(shù)據(jù)結(jié)構(gòu)中的鍵的新字典,您可以使用以下嵌套字典推導(dǎo):
new_dict = {k: data[k] for k in data}
print(new_dict)
它會(huì)產(chǎn)生一個(gè)新的字典,看起來像這樣:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
您可以使用以下嵌套字典推導(dǎo)來合成一個(gè)僅維護(hù)此數(shù)據(jù)結(jié)構(gòu)中的值的新字典。
new_dict = {k: v for k, v in data.items()}它會(huì)產(chǎn)生一個(gè)新的字典,看起來像這樣:
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
如您所見,嵌套字典推導(dǎo)是一個(gè)強(qiáng)大的工具,可以快速高效地處理和操作復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。 這也是創(chuàng)建臨時(shí)數(shù)據(jù)結(jié)構(gòu)的一種簡(jiǎn)單方法。
Python 中嵌套字典推導(dǎo)的語法
要?jiǎng)?chuàng)建嵌套字典推導(dǎo),請(qǐng)將另一個(gè)字典推導(dǎo)放在第一個(gè)字典推導(dǎo)的括號(hào)內(nèi)。
下面的例子創(chuàng)建了一個(gè)字典的字典,每個(gè)內(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'}
上面的第一個(gè)字典推導(dǎo)創(chuàng)建了一個(gè)字典,其中的鍵是水果的名稱,值是這些水果的顏色。
上面的第二個(gè)字典推導(dǎo)做同樣的事情,但增加了一個(gè)額外的嵌套級(jí)別,創(chuàng)建了一個(gè)字典的字典。
代碼示例:
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)有幾個(gè)優(yōu)點(diǎn)。
- 我們可以使用它們輕松地創(chuàng)建復(fù)雜的嵌套字典。
- 我們可以使用它們來高效地處理大量數(shù)據(jù)。
- 最后,我們可以使用它們?cè)诂F(xiàn)有詞典的基礎(chǔ)上快速創(chuàng)建新詞典。
因此,了解嵌套字典推導(dǎo)式的工作原理,您可以在 Python 中快速高效地處理復(fù)雜數(shù)據(jù)。
到此這篇關(guān)于Python 中的嵌套字典推導(dǎo)的文章就介紹到這了,更多相關(guān)Python 字典推導(dǎo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?中的嵌套字典推導(dǎo)的使用及優(yōu)勢(shì)
- 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)式簡(jiǎn)單示例【列表推導(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)文章
Python模擬登陸網(wǎng)頁的三種方法小結(jié)
如何使用Python模擬登陸網(wǎng)頁,尤其是在涉及到復(fù)雜的認(rèn)證機(jī)制時(shí)?這篇文章將詳細(xì)介紹Python模擬登陸網(wǎng)頁的三種方法,以及如何繞過一些常見的安全防護(hù)措施,需要的朋友可以參考下2024-01-01
Pytorch 實(shí)現(xiàn)計(jì)算分類器準(zhǔn)確率(總分類及子分類)
今天小編就為大家分享一篇Pytorch 實(shí)現(xiàn)計(jì)算分類器準(zhǔn)確率(總分類及子分類),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
解讀requests.session()獲取Cookies全過程
這篇文章主要介紹了解讀requests.session()獲取Cookies全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python實(shí)現(xiàn)視頻畫質(zhì)增強(qiáng)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實(shí)現(xiàn)對(duì)視頻進(jìn)行畫質(zhì)增強(qiáng)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-04-04
在python中使用pymysql往mysql數(shù)據(jù)庫(kù)中插入(insert)數(shù)據(jù)實(shí)例
今天小編就為大家分享一篇在python中使用pymysql往mysql數(shù)據(jù)庫(kù)中插入(insert)數(shù)據(jù)實(shí)例。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python實(shí)現(xiàn)自動(dòng)生成SQL語句
在數(shù)據(jù)處理和管理中,SQL(Structured?Query?Language)是一種非常重要的語言,本文主要介紹了如何使用python實(shí)現(xiàn)自動(dòng)生成SQL語句,需要的可以參考下2024-04-04
python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn)
公司使用的是企業(yè)微信,因此考慮Jenkins通知企業(yè)微信機(jī)器人的實(shí)現(xiàn)方式,本文主要介紹了python使用jenkins發(fā)送企業(yè)微信通知的實(shí)現(xiàn),感興趣的可以了解一下2021-06-06

