Python 内置 defaultdict 用法
d=defualt(),括号中的参数可选[int,set,list]中的一个
1、将字符串中每个字符和他出现的次数组成字典。
from collections import defaultdict
s = 'mississippi'
d = defaultdict(int)
for k in s:
d[k] += 1
print(d)
执行结果:
defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})
可用于计算字符串中字符的出现个数。
2、Example 2-----集合法,能够不重复,用数组会重复
# Example 2-----集合法,能够不重复,用数组会重复
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = defaultdict(set)
for k, v in s:
d[k].add(v)
print(d)
执行结果:
defaultdict(<class 'set'>, {'red': {1, 3}, 'blue': {2, 4}})
可用于计算字符串中字符的出现个数。
3、Example 3数组写法-----,key为red的值都会加到之后的数组里,所以说会重复。
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
# 等价写法-----------------1
d = defaultdict(list)
for k,v in s:
d[k].append(v)
# 等价写法-----------------2
# d={}
# for k,v in s:
# d.setdefault(k,[]).append(v)
sorted(d.items())
print(d)
执行结果:
defaultdict(<class 'list'>, {'red': [1, 3, 1], 'blue': [2, 4, 4]})
用数组模式有两种等价的写法
本文详细介绍Python内置defaultdict的使用方法,包括如何统计字符串中字符出现次数、利用集合法避免重复计数以及数组写法实现元素累加。通过三个具体实例,帮助读者掌握defaultdict在不同场景下的应用。
1296

被折叠的 条评论
为什么被折叠?



