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

python如何實(shí)現(xiàn)多層級(jí)自動(dòng)賦值字典

 更新時(shí)間:2023年08月12日 10:15:16   作者:小胖_@  
這篇文章主要介紹了python如何實(shí)現(xiàn)多層級(jí)自動(dòng)賦值字典問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python多層級(jí)自動(dòng)賦值字典

dict 只能單層級(jí)賦值

item['20161101'] = 2

defaultdict 只能雙層級(jí)賦值

item['20161101']["age"] = 2

使用方法:

import collections
bag = ['apple', 'orange', 'cherry', 'apple','apple', 'cherry', 'blueberry']
count = collections.defaultdict(int)
for fruit in bag:
    count[fruit] += 1
輸出:
defaultdict(<class 'int'>, {'apple': 3, 'orange': 1, 'cherry': 2, 'blueberry': 1})

多層級(jí)自動(dòng)賦值字典

item['20161101']["age"]["444"] = 2

實(shí)現(xiàn)多層級(jí)自動(dòng)賦值 除了可以重載__getitem__魔術(shù)方法,也可以實(shí)現(xiàn)__missing__魔術(shù)方法

1.重載__getitem__魔術(shù)方法:

def __getitem__(self, item):
? ? try:
? ? ? ? return dict.__getitem__(self, item)
? ? except KeyError:
? ? ? ? value = self[item] = type(self)()
? ? ? ? return value

2.實(shí)現(xiàn)__missing__魔術(shù)方法:

def __missing__(self, key):
?? ?value = self[key] = type(self)()
?? ?return value

3.使用方法:

class multidict(dict):
def __getitem__(self, item):
?? ?try:
?? ? ? ?return dict.__getitem__(self, item)
?? ?except KeyError:
?? ? ? ?value = self[item] = type(self)()
?? ? ? ?return value
item = multidict()
item['20161101']["age"] = 20
item['20161102']['num'] = 30
print(item)

python字典一鍵賦多值

方案一

(1) list作為dict的值,值允許重復(fù),append添加值

key = 0
value = [1,5]
exp = dict()
exp.setdefault(key,[]).append(value)?
value = [2,5]
exp.setdefault(key,[]).append(value)
print(exp)

輸出:

{0: [[1, 5], [2, 5]]}

(2)set作為dict的值,值不允許重復(fù),add添加值

key = 0
value = 1
exp = dict()
exp.setdefault(key,set()).add(value)?
value = 2
exp.setdefault(key,set()).add(value)
print(exp)

輸出:

{0: {1, 2}}

方案二

使用collections.defaultdict方法

(1)collections.defaultdict(list),值可以重復(fù)

import collections
key = 0
value = 1
exp = collections.defaultdict(list)
exp[key].append(value)
value = 1
exp[key].append(value)
print(exp)

輸出:

defaultdict(<class 'list'>, {0: [1, 1]})

(2)collections.defaultdict(set),值不允許重復(fù)

import collections
key = 0
value = 1
exp = collections.defaultdict(set)
exp[key].add(value)
value = 1
exp[key].add(value)
value = 5
exp[key].add(value)
print(exp)

輸出:

defaultdict(<class 'set'>, {0: {1, 5}}) 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3操作YAML文件格式方法解析

    Python3操作YAML文件格式方法解析

    這篇文章主要介紹了Python3操作YAML文件格式方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python基礎(chǔ)之爬蟲入門

    python基礎(chǔ)之爬蟲入門

    這篇文章主要介紹了python基礎(chǔ)之爬蟲入門,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲的小伙伴們有很好地幫助喲,需要的朋友可以參考下
    2021-05-05
  • 利用Python實(shí)現(xiàn)多種風(fēng)格的照片處理

    利用Python實(shí)現(xiàn)多種風(fēng)格的照片處理

    這篇文章主要為大家詳細(xì)介紹了如何利用Python一鍵實(shí)現(xiàn)多種風(fēng)格的照片處理并制作可視化GUI界面,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • Windows 安裝 Anaconda3+PyCharm的方法步驟

    Windows 安裝 Anaconda3+PyCharm的方法步驟

    這篇文章主要介紹了Windows 安裝 Anaconda3+PyCharm的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • Python+pyplot繪制帶文本標(biāo)注的柱狀圖方法

    Python+pyplot繪制帶文本標(biāo)注的柱狀圖方法

    今天小編就為大家分享一篇Python+pyplot繪制帶文本標(biāo)注的柱狀圖方法,具有很好的價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 詳解JavaScript編程中的window與window.screen對(duì)象

    詳解JavaScript編程中的window與window.screen對(duì)象

    這篇文章主要介紹了JavaScript編程中的window與window.screen對(duì)象,是JS在瀏覽器中視圖編程的基礎(chǔ),需要的朋友可以參考下
    2015-10-10
  • python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法

    python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法

    這篇文章主要介紹了python中以函數(shù)作為參數(shù)(回調(diào)函數(shù))的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python3中函數(shù)參數(shù)的四種簡單用法

    python3中函數(shù)參數(shù)的四種簡單用法

    這篇文章主要介紹了python3中函數(shù)參數(shù)的四種簡單用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Python Selenium截圖功能實(shí)現(xiàn)代碼

    Python Selenium截圖功能實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python Selenium截圖功能實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • python 讀取目錄下csv文件并繪制曲線v111的方法

    python 讀取目錄下csv文件并繪制曲線v111的方法

    今天小編就為大家分享一篇python 讀取目錄下csv文件并繪制曲線v111的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論