下面是关于"python中defaultdict字典功能特性介绍"的完整攻略:
什么是defaultdict?
defaultdict
是Python标准库collections模块中的一种字典类型,它是字典类(dict
)的一个子类,用于指定字典中如果没有相应的key时的默认返回值。
defaultdict
的特殊之处在于,如果在字典中查找一个不存在的key时,会自动调用一个默认函数来为该key创建一个默认值,以解决word counts, groupings等一些常见问题。
默认值可以是任何可调用的对象,比如int, str, list, tuple, set, 和自定义函数等。
使用示例
下面是两个示例说明defaultdict的使用方法:
示例1:统计一个list中每个元素的出现次数
from collections import defaultdict
words_count = defaultdict(int)
words = ["apple", "banana", "orange", "apple", "orange", "tomato", "banana", "apple", "orange"]
for word in words:
words_count[word] += 1
print(words_count)
输出:
defaultdict(<class 'int'>, {'apple': 3, 'banana': 2, 'orange': 3, 'tomato': 1})
解释:以上代码统计了一个list中每个元素的出现次数,生成一个字典,其中defaultdict中的int表示默认值为0,当需要对某个元素单独计数时,可以直接使用words_count[word] += 1
自增来操作。
示例2:对字典的值进行分组
from collections import defaultdict
score_group = defaultdict(list)
score_dict = {"John": 85, "Tom": 78, "Ken": 92, "Lucy": 79, "Brad": 85}
for name, score in score_dict.items():
score_group[score].append(name)
print(score_group)
输出:
defaultdict(<class 'list'>, {85: ['John', 'Brad'], 78: ['Tom'], 92: ['Ken'], 79: ['Lucy']})
解释:以上代码是对字典的值进行分组,将相同值的key对应的value聚合到一个列表中。在上面的示例中,将考试得分相同的同学聚到了一起,并形成了一个新的字典。其中defaultdict中的list表示默认值为空列表([])。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中defaultdict字典功能特性介绍 - Python技术站