日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python库整理:collections.defaultdict

發布時間:2025/4/5 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python库整理:collections.defaultdict 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python中通過Key訪問字典,當Key不存在時,會引發‘KeyError'異常。(之前dict里面的解決方法是使用get函數設置默認值)

dit={'yellow': 3, 'blue': 4, 'red': 1} dit['green'] #KeyError: 'green'dit.get('green',10) #第二個參數為,如果值不存在,返回的默認值 #10

我們也可以使用collections類中的defaultdict()方法來為字典提供默認值。該函數返回一個類似字典的對象。

defaultdict是Python內建字典類(dict)的一個子類,它重寫了方法_missing_(key),增加了一個可寫的實例變量default_factory。

實例變量default_factory被missing()方法使用,如果該變量存在,則用以初始化構造器,如果沒有,則為None。其它的功能和dict一樣。

我們先看一個例子:

s=[('yellow',1),('blue',2),('yellow',3),('blue',4),('red',1)]

我們希望把s中的信息整理成字典,每個顏色的數字放在這個顏色對應的列表中

以下兩種方法都是不行的。新的值會覆蓋掉老的值

dict(s) #{'yellow': 3, 'blue': 4, 'red': 1}d2=dict() for k,v in s:d2[k]=v d2 #{'yellow': 3, 'blue': 4, 'red': 1}

?

?

如果我們不用defaultdict的話,可以用下面兩種方法來實現

d3=dict() for k,v in s:if(k in d3):d3[k].append(v)else:d3[k]=[v] d3 {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]}d4=dict() ''' setdefault和get一樣,是返回字典的鍵值, 不過和get不一樣的是,在字典中不包含指定的項的時候, 添加指定的鍵值對(如果不指定鍵值的話,默認為None) ''' for k,v in s:d4.setdefault(k,[]).append(v) d4 #{'yellow': [1, 3], 'blue': [2, 4], 'red': [1]}

?


使用defaultdict

d=defaultdict(list) #參數為defaultdict屬性的類型for k,v in s:d[k].append(v) ''' 當字典中沒有的鍵第一次出現時,default_factory自動為其返回一個空列表 list.append()會將值添加進新列表; 再次遇到相同的鍵時,list.append()將其它值再添加進該列表。 ''' a=d.items()print(d) #defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]}) print(a) #dict_items([('yellow', [1, 3]), ('blue', [2, 4]), ('red', [1])]) print(dict(a)) #{'yellow': [1, 3], 'blue': [2, 4], 'red': [1]}

?

如果defaultdict的參數是int的話,那么就和在setdefault里面設置默認參數為0是一樣的

s = 'Chinese' d = defaultdict(int) for k in s:d[k] += 1 d #defaultdict(int, {'C': 1, 'h': 1, 'i': 1, 'n': 1, 'e': 2, 's': 1})d1 = dict() for k in s:d1.setdefault(k,0)+=1 #這樣就是錯的,SyntaxError: can't assign to function call

?

總結

以上是生活随笔為你收集整理的python库整理:collections.defaultdict的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜尤物 | 成人午夜精品无码区 | 亚洲综合不卡 | 亚洲小视频在线观看 | 亚洲国产日韩精品 | www日韩视频 | 色综合久久久久综合体桃花网 | 成人免费高清在线播放 | 色秀视频网 | 久久亚洲高清 | www.黄色片网站 | 日本69视频 | 美女视频黄色在线观看 | 7777久久亚洲中文字幕 | 国内精久久久久久久久久人 | 亚洲视频 一区 | 精品麻豆一区二区 | 伦理片波多野结衣 | 在线观看wwww| 成人欧美一区二区三区黑人 | 天堂av电影在线观看 | 国产精品久久久久99 | 国产精品久久久久久久久久久久午夜片 | 污视频免费网站 | 在线成人黄色 | 女性裸体无遮挡胸 | 久热在线视频 | 精彩视频一区二区 | 99久久毛片 | 亚洲一二三在线 | 深夜福利网站 | 久久视频黄色 | 成人手机av | 超碰69 | 少妇又紧又色 | 黄色aa大片| 奇米网久久| 色悠悠网址| 九色丨蝌蚪丨成人 | 国产h在线观看 | 91在现看| 久久九九综合 | 无码专区久久综合久中文字幕 | 一级黄色大片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | gav在线 | 亚洲综合激情网 | 亚洲一区二区三区高清在线 | 伊人色区| 在线亚洲一区 | 国产精选第一页 | 激情偷拍| 国产精品永久 | 欧美日一区二区三区 | 色播在线视频 | 国产精品9999 | 美女三级视频 | 国产又粗又硬 | 黄片毛片在线看 | 久久国产视频网站 | 天天色天天插 | 久久色在线 | 熟妇女人妻丰满少妇中文字幕 | 宅男噜噜噜66一区二区 | 性欧美18| 亚洲乱码在线观看 | 懂色av一区二区三区免费观看 | 激情小说亚洲图片 | 国产精品自产拍高潮在线观看 | 午夜丰满寂寞少妇精品 | 综合一区 | 亚洲高清一区二区三区 | 秋霞av一区二区三区 | 男女涩涩 | 国产在线伊人 | 欧美成人一区二区三区四区 | 欧美肉丝袜videos办公室 | 成人免费福利 | 久久高清免费视频 | 在线观看欧美一区二区 | 久草久热| 日美韩一区二区三区 | 福利电影在线播放 | 在线观看高h | a毛片网站 | 精品麻豆| 欧美在线另类 | 天堂成人在线观看 | 中文字幕无码毛片免费看 | 午夜免费大片 | 99精品国自产在线 | 狠狠干b | 网红日批视频 | 亚洲av无码久久精品狠狠爱浪潮 | youjizz亚洲 | 成人免费在线网址 | 女人18毛片水真多 | 欧美亚日韩 | www.伊人网 |