最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)在字典中將鍵映射到多個(gè)值上的方法

 更新時(shí)間:2018年02月18日 08:22:07   作者:壟上行  
這篇文章主要介紹了Python在字典中將鍵映射到多個(gè)值上的方法,涉及Python針對(duì)字典的相關(guān)映射與初始化相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python在字典中將鍵映射到多個(gè)值上的方法。分享給大家供大家參考,具體如下:

問(wèn)題:一個(gè)能將鍵(key)映射到多個(gè)值的字典(即所謂的一鍵多值字典[multidict])

解決方案:如果想讓鍵映射到多值,需要將這多個(gè)值保持到另一個(gè)容器如列表或集合中;

>>> d={'a':[1,2,3],'b':[4,5]}
>>> d
{'b': [4, 5], 'a': [1, 2, 3]}
>>> e={'a':{1,2,3,3},'b':{4,5}}
>>> e
{'b': {4, 5}, 'a': {1, 2, 3}}
>>> f={'a':[1,2,3,3],'b':[4,5]}
>>> f
{'b': [4, 5], 'a': [1, 2, 3, 3]}
>>>

更方便的創(chuàng)建這樣的字典是利用collections模塊中的defaultdict類。defaultdict的一個(gè)特點(diǎn)是它會(huì)自動(dòng)給字典初始化第一個(gè)值,這樣只需添加元素即可。例如:

from collections import defaultdict
d=defaultdict(list) #創(chuàng)建一鍵多值的字典,key的value是list類型
d['a'].append(1)
d['a'].append(2)
d['a'].append(2)
d['b'].append(4)
c=defaultdict(set) #創(chuàng)建一鍵多值的字典,key的value是set類型
c['a'].add(1)
c['a'].add(2)
c['a'].add(2)
c['b'].add(4)
print('key的value是list類型的字典:',d)
print('key的value是set類型的字典:',c)

>>> ================================ RESTART ================================
>>>
key的value是list類型的字典: defaultdict(<class 'list'>, {'b': [4], 'a': [1, 2, 2]})
key的value是set類型的字典: defaultdict(<class 'set'>, {'b': {4}, 'a': {1, 2}})
>>>

關(guān)于defaultdict需要注意的一點(diǎn),他會(huì)自動(dòng)創(chuàng)建字典表項(xiàng)以待稍后的訪問(wèn)(即使這些表項(xiàng)當(dāng)前在字典中還沒(méi)有找到)。

如果想取消這個(gè)功能,可以在普通的字典上調(diào)用setdefault()方法來(lái)取代,例如:

d={} #一個(gè)普通的字典
d.setdefault('a',[]).append(1)
d.setdefault('a',[]).append(2)
d.setdefault('a',[]).append(2)
d.setdefault('b',[]).append(4)
>>>

key的value是list類型的字典:

{'a': [1, 2, 2], 'b': [4]}

補(bǔ)充:

構(gòu)建一個(gè)一鍵多值的字典很容易,但是如果試著自己對(duì)第一個(gè)值做初始化操作,這個(gè)會(huì)變得很雜亂,如果使用defaultdic后代碼會(huì)簡(jiǎn)潔很多:

pairs={'a':[22,44],'b':[88]}
d=defaultdict(list)
for key,value in pairs.items():
  d[key].append(value)
print (d)
>>>
defaultdict(<class 'list'>, {'a': [[22, 44]], 'b': [[88]]})
>>>

(代碼摘自《Python Cookbook》)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python利用py-redis實(shí)現(xiàn)分布式鎖

    Python利用py-redis實(shí)現(xiàn)分布式鎖

    隨著業(yè)務(wù)的增長(zhǎng),后端技術(shù)架構(gòu)會(huì)慢慢的從單體服務(wù)轉(zhuǎn)向多服務(wù)或者微服務(wù)的分布式架構(gòu),本文主要為大家介紹了如何利用Py-Redis實(shí)現(xiàn)簡(jiǎn)單的分布式鎖,需要的可以參考一下
    2023-08-08
  • Python第三方模塊apscheduler安裝和基本使用

    Python第三方模塊apscheduler安裝和基本使用

    本文主要介紹了Python第三方模塊apscheduler安裝和基本使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • M1芯片Mac上Anaconda的暫時(shí)替代(miniforge)

    M1芯片Mac上Anaconda的暫時(shí)替代(miniforge)

    這篇文章主要介紹了M1芯片Mac上Anaconda的暫時(shí)替代(miniforge),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python使用openpyxl讀寫(xiě)excel文件的方法

    Python使用openpyxl讀寫(xiě)excel文件的方法

    本篇文章主要介紹了Python使用openpyxl讀寫(xiě)excel文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Python?Requests?基本使用及Requests與?urllib?區(qū)別

    Python?Requests?基本使用及Requests與?urllib?區(qū)別

    在使用Python爬蟲(chóng)時(shí),需要模擬發(fā)起網(wǎng)絡(luò)請(qǐng)求,主要用到的庫(kù)有requests庫(kù)和python內(nèi)置的urllib庫(kù),一般建議使用requests,它是對(duì)urllib的再次封裝,今天通過(guò)本文給大家講解Python?Requests使用及urllib區(qū)別,感興趣的朋友一起看看吧
    2022-11-11
  • python實(shí)現(xiàn)登錄密碼重置簡(jiǎn)易操作代碼

    python實(shí)現(xiàn)登錄密碼重置簡(jiǎn)易操作代碼

    這篇文章主要介紹了python實(shí)現(xiàn)登錄密碼重置簡(jiǎn)易操作,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • python字典DICT類型合并詳解

    python字典DICT類型合并詳解

    這篇文章主要為大家詳細(xì)介紹了python字典DICT類型合并,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 關(guān)于Flask 上下文詳細(xì)介紹

    關(guān)于Flask 上下文詳細(xì)介紹

    這篇文章主要給大家分享了關(guān)于Flask 上下文詳細(xì)介紹,我們可以把上下文理解為當(dāng)前環(huán)境的快照,是一個(gè)用來(lái)保存狀態(tài)的對(duì)象。在代碼執(zhí)行的某個(gè)時(shí)刻,根據(jù)上下文的代碼邏輯,可以決定在當(dāng)前時(shí)刻下使用到的環(huán)境變量等。下面一起進(jìn)入文章了解詳情內(nèi)容,需要的朋友也可以參考一下
    2021-11-11
  • python解析xml文件并修改其屬性值方式

    python解析xml文件并修改其屬性值方式

    本文介紹了兩種解析和修改XML文件的方法:使用Python自帶的xml.etree.ElementTree和第三方的lxml,lxml方法可以添加standalone屬性,而ElementTree則不能
    2025-02-02
  • Python中防止sql注入的方法詳解

    Python中防止sql注入的方法詳解

    SQL注入是比較常見(jiàn)的網(wǎng)絡(luò)攻擊方式之一,它不是利用操作系統(tǒng)的BUG來(lái)實(shí)現(xiàn)攻擊,而是針對(duì)程序員編程時(shí)的疏忽,通過(guò)SQL語(yǔ)句,實(shí)現(xiàn)無(wú)帳號(hào)登錄,甚至篡改數(shù)據(jù)庫(kù)。下面這篇文章主要給大家介紹了關(guān)于Python中防止sql注入的方法,需要的朋友可以參考下。
    2017-02-02

最新評(píng)論

盐源县| 曲水县| 连州市| 襄城县| 昌乐县| 克山县| 绥化市| 晋宁县| 册亨县| 平江县| 阿勒泰市| 合江县| 来宾市| 温宿县| 望谟县| 从化市| 泽普县| 常州市| 德格县| 山阴县| 阜阳市| 封开县| 巢湖市| 蓬莱市| 普格县| 清涧县| 富源县| 乃东县| 平定县| 密山市| 平陆县| 宝鸡市| 丹寨县| 桂林市| 阳西县| 镇平县| 达拉特旗| 辽中县| 凤庆县| 石阡县| 张家港市|