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

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

 更新時(shí)間:2023年08月12日 10:15:16   作者:小胖_@  
這篇文章主要介紹了python如何實(shí)現(xiàn)多層級(jí)自動(dòng)賦值字典問(wèn)題,具有很好的參考價(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)文章

  • Python學(xué)習(xí)筆記之裝飾器

    Python學(xué)習(xí)筆記之裝飾器

    這篇文章主要介紹了Python 裝飾器的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python字典的基本用法實(shí)例分析【創(chuàng)建、增加、獲取、修改、刪除】

    Python字典的基本用法實(shí)例分析【創(chuàng)建、增加、獲取、修改、刪除】

    這篇文章主要介紹了Python字典的基本用法,結(jié)合具體實(shí)例形式分析了Python字典的創(chuàng)建、增加、獲取、修改、刪除等基本操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • Python獲取請(qǐng)求頭Header的常用方法

    Python獲取請(qǐng)求頭Header的常用方法

    在 Python 中,如果你使用的是 Flask 或 Django 等常見的 Web 框架來(lái)處理 HTTP 請(qǐng)求,可以通過(guò)這些框架提供的工具來(lái)獲取請(qǐng)求頭(Request Header),以下是兩種常見框架的示例代碼,需要的朋友可以參考下
    2025-06-06
  • 使用Python和OpenCV檢測(cè)圖像中的物體并將物體裁剪下來(lái)

    使用Python和OpenCV檢測(cè)圖像中的物體并將物體裁剪下來(lái)

    這篇文章主要介紹了使用Python和OpenCV檢測(cè)圖像中的物體并將物體裁剪下來(lái),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 關(guān)于使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯(cuò)的問(wèn)題

    關(guān)于使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯(cuò)的問(wèn)題 ,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 使用Python保存網(wǎng)頁(yè)上的圖片或者保存頁(yè)面為截圖

    使用Python保存網(wǎng)頁(yè)上的圖片或者保存頁(yè)面為截圖

    這篇文章主要介紹了使用Python保存網(wǎng)頁(yè)上的圖片或者保存頁(yè)面為截圖的方法,保存網(wǎng)頁(yè)圖片主要用到urllib模塊,即簡(jiǎn)單的爬蟲原理,需要的朋友可以參考下
    2016-03-03
  • Python中的xmltodict模塊詳解

    Python中的xmltodict模塊詳解

    這篇文章主要介紹了Python中的xmltodict模塊詳解,xmltodict一般我們用 json、yaml 轉(zhuǎn)換成 dict 可能多一些,xml 轉(zhuǎn)到 dict 可能用得不多,不過(guò),還是可以來(lái)看一看,需要的朋友可以參考下
    2023-07-07
  • 一文詳解Python與?C++、C語(yǔ)言的區(qū)別及選擇指南

    一文詳解Python與?C++、C語(yǔ)言的區(qū)別及選擇指南

    現(xiàn)在編程是很多人都比較關(guān)注的,越來(lái)越多的人都想要學(xué)習(xí)編程語(yǔ)言,主流的編程語(yǔ)言有python、C、Java等,這篇文章主要介紹了Python?與?C++、C?語(yǔ)言的區(qū)別及選擇指南,需要的朋友可以參考下
    2025-10-10
  • 解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過(guò)的問(wèn)題

    解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過(guò)的問(wèn)題

    這篇文章主要介紹了解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過(guò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過(guò)程

    YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過(guò)程

    作為當(dāng)前先進(jìn)的深度學(xué)習(xí)目標(biāo)檢測(cè)算法YOLOv5,已經(jīng)集合了大量的trick,但是還是有提高和改進(jìn)的空間,針對(duì)具體應(yīng)用場(chǎng)景下的檢測(cè)難點(diǎn),可以不同的改進(jìn)方法,下面這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)之添加SE注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

洛阳市| 逊克县| 封丘县| 洱源县| 兰考县| 施甸县| 迁西县| 遂昌县| 平遥县| 陆丰市| 车险| 湖口县| 习水县| 汽车| 顺义区| 通化县| 大港区| 色达县| 台东县| 石家庄市| 南安市| 房产| 墨竹工卡县| 清水河县| 宁武县| 南安市| 舒城县| 黄梅县| 文成县| 辽源市| 阿鲁科尔沁旗| 塘沽区| 湘阴县| 嘉荫县| 保亭| 淅川县| 密云县| 桂东县| 白水县| 邓州市| 平利县|