Summary of python defaultdict function

1. Compared with dict, the default value of the key is added.

nums=[3,2,1,1,4]
dnum=dict()
for i in nums:
    if i in dnum:dnum[i]+=1
    else:dnum[i]=1
print(dnum)
输出:{
    
    3: 1, 2: 1, 1: 2, 4: 1}

fnum=defaultdict(int)
for i in nums:fnum[i]+=1  # 不存在的元素+不会报错
print(fnum)  # 优化了dict的计数统计
输出:defaultdict(<class 'int'>, {
    
    3: 1, 2: 1, 1: 2, 4: 1})

2. Add default list elements

tum=[("A", "1"), ("B", "1"), ("A", "2"), ("B", "2"), ("A", "3"), ("B", "3")]
dtum=dict()
for i,j in tum:
    if i in dtum:dtum[i]+=[j]
    else:dtum[i]=[j]
print(dtum)
输出:{
    
    'A': ['1', '2', '3'], 'B': ['1', '2', '3']}

ftum=defaultdict(list)
for i,j in tum:
    ftum[i].append(j)
print(ftum)
输出:defaultdict(<class 'list'>, {
    
    'A': ['1', '2', '3'], 'B': ['1', '2', '3']})

3. Accept a factory function as a default parameter

lm=defaultdict(lambda:[1,2,3,4])
lm["存在"]=["value"]
print(lm["存在"])
输出:['value']
print(lm["不存在"])
输出:[1, 2, 3, 4]
print(lm)
输出:defaultdict(<function <lambda> at 0x000001D073861DC8>, {
    
    '存在': ['value'], '不存在': [1, 2, 3, 4]})

Regarding defaultdict, that’s probably all, let’s break it down ~

Guess you like

Origin blog.csdn.net/weixin_46119529/article/details/129761747