欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?字典中鍵映射多個(gè)值的問(wèn)題解決

 更新時(shí)間:2025年01月17日 10:20:26   作者:大夢(mèng)三千秋  
本文主要介紹了在Python中實(shí)現(xiàn)一個(gè)字典multidict中鍵可以對(duì)應(yīng)多個(gè)值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

問(wèn)題

如何實(shí)現(xiàn)一個(gè)字典(multidict)的鍵對(duì)應(yīng)多個(gè)值?

解決方法

字典的定義就是一個(gè)鍵對(duì)應(yīng)一個(gè)單值的映射。如果想要一個(gè)鍵映射多個(gè)值,那么需要將多個(gè)值放到其他容器中,例如列表和集合當(dāng)中,示例代碼如下:

a = {
    'x': [1,2,3],
    'y': [4,5]
}

b = {
    'x': {1,2,3},
    'y': {4,5}
}

而選擇使用列表還是集合取決于實(shí)際的需求。如果需要保持插入元素的順序,建議選擇列表;如果需求需要去掉重復(fù)的元素,建議選擇集合。

Python 提供的 collections 模塊中,defaultdict 可以實(shí)現(xiàn)構(gòu)造這樣的字典。defaultdict 有個(gè)特征是能夠自動(dòng)初始化每個(gè) key 剛開(kāi)始對(duì)應(yīng)的值,所以只需要進(jìn)行添加元素的操作。示例如下:

from collections import defaultdict

dl = defaultdict(list)
dl['x'].append(1)
dl['x'].append(2)
dl['y'].append(3)

ds = defaultdict(set)
ds['x'].add(1)
ds['x'].add(2)
ds['y'].add(3)

print(dl)
print(ds)

這里需要注意的是,defaultdict 會(huì)自動(dòng)為將要訪問(wèn)的鍵(即使目前字典中不存在這個(gè)鍵)創(chuàng)建映射實(shí)體。所以如果不需要這種特性,可以在普通字典中使用 setdefault() 方法代替。示例如下:

d = {}
d.setdefault('x', []).append(1)
d.setdefault('x', []).append(2)
d.setdefault('y', []).append(3)

但這種方法被認(rèn)為過(guò)于繁瑣,因?yàn)槊看握{(diào)用都要?jiǎng)?chuàng)建新的初始值示例,例如上面代碼中的空列表([]

代碼解析

上面提及的映射多值的字典,實(shí)際上也能夠自己實(shí)現(xiàn),但是對(duì)于值的初始化會(huì)比較麻煩,示例如下:

d = {}
for key, value in items:
    if key not in d:
        d[key] = []
    d[key].append(value)

而使用 defaultdict 則會(huì)更加簡(jiǎn)潔:

d = defaultdict(list)
for key, value in items:
    d[key].append(value)

到此這篇關(guān)于Python 字典中鍵映射多個(gè)值的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Python 字典鍵映射值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Python web中實(shí)現(xiàn)驗(yàn)證碼圖片代碼分享

    在Python web中實(shí)現(xiàn)驗(yàn)證碼圖片代碼分享

    這篇文章主要介紹了在Python web中實(shí)現(xiàn)驗(yàn)證碼圖片代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Python面向?qū)ο缶幊讨惖倪M(jìn)階

    Python面向?qū)ο缶幊讨惖倪M(jìn)階

    這篇文章主要介紹了Python面向?qū)ο缶幊讨惖囊?,引?Reference是對(duì)象的指針,引用是內(nèi)存中真實(shí)對(duì)象的指針,表示為變量名或者內(nèi)存地址、每個(gè)對(duì)象存在至少一個(gè)引用,id()函數(shù)用于獲得引用,想具體了解的小伙伴可以參考下面文章的內(nèi)容
    2021-11-11
  • Python制作微信好友背景墻教程(附完整代碼)

    Python制作微信好友背景墻教程(附完整代碼)

    這篇文章主要介紹了Python制作微信好友背景墻教程(附完整代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python開(kāi)發(fā)前景如何

    python開(kāi)發(fā)前景如何

    在本篇文章中小編給大家整理了關(guān)于python開(kāi)發(fā)前景的知識(shí)點(diǎn)及相關(guān)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2020-06-06
  • Python學(xué)習(xí)之文件的讀取詳解

    Python學(xué)習(xí)之文件的讀取詳解

    這篇文章主要為大家介紹了Python中如何將文件中的內(nèi)容讀取出去來(lái)的方法,文中通過(guò)示例進(jìn)行了詳細(xì)講解,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • Python實(shí)現(xiàn)定時(shí)任務(wù)的九種方案總結(jié)

    Python實(shí)現(xiàn)定時(shí)任務(wù)的九種方案總結(jié)

    定時(shí)任務(wù)是編程中常見(jiàn)的需求,它可以按照預(yù)定的時(shí)間表執(zhí)行特定的任務(wù)或操作,在Python中,有多種方法可以實(shí)現(xiàn)定時(shí)任務(wù),下面小編就來(lái)和大家詳細(xì)講講吧
    2023-11-11
  • Python實(shí)戰(zhàn)快速上手BeautifulSoup庫(kù)爬取專欄標(biāo)題和地址

    Python實(shí)戰(zhàn)快速上手BeautifulSoup庫(kù)爬取專欄標(biāo)題和地址

    BeautifulSoup是爬蟲(chóng)必學(xué)的技能,BeautifulSoup最主要的功能是從網(wǎng)頁(yè)抓取數(shù)據(jù),Beautiful Soup自動(dòng)將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼
    2021-10-10
  • Python GAE、Django導(dǎo)出Excel的方法

    Python GAE、Django導(dǎo)出Excel的方法

    在Python中操作Excel的方法可以通過(guò)COM,最常用的跨平臺(tái)的方法是使用pyExcelerator,pyExcelerator的使用方法可以參考limodou的《使用pyExcelerator來(lái)讀寫(xiě)Excel文件》。
    2008-11-11
  • Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素示例【二分查找】

    Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素示例【二分查找】

    這篇文章主要介紹了Python查找數(shù)組中數(shù)值和下標(biāo)相等的元素,結(jié)合實(shí)例形式分析了Python基于二分查找針對(duì)數(shù)組查找相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-02-02
  • 在Django同1個(gè)頁(yè)面中的多表單處理詳解

    在Django同1個(gè)頁(yè)面中的多表單處理詳解

    這篇文章主要給大家介紹了在Django同1個(gè)頁(yè)面中的多表單處理的相關(guān)資料,文章先給大家介紹了如何快速上手Django實(shí)現(xiàn)項(xiàng)目的方法,方便讓大家理解和學(xué)習(xí),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01

最新評(píng)論