隐藏页面特效

defaultdict高级用法

1|0说明


defaultdict数据结构允许调用者提供一个函数,用来在键名缺失的情况下,创建与这个 键对应的值。只要字典发现调用者想要访问的键不存在,就会触发这个函数,以返回应该 与键相关联的默认值

下面定义一个log_missing函数作为键名缺失时的挂钩,该函数总是会把这种键的默认值设为0。

def log_missing(): print("Key added") return 0

下面这段代码通过定制的defaultdict字典,把increments列表里面描述的增量添加到current
这个普通字典所提供的初始量上面,但字典里一开始没有'red'和'orange'这两个键,因此
log_missing这个挂钩函数会触发两次,每次它都会打印'Key added'信息。

from collections import defaultdict current = {'green': 12, 'blue': 3} increments = [ ('red', 5), ('blue', 17), ('orange', 9), ] result = defaultdict(log_missing, current) # 2个参数的用法,参数1表示自定义的函数,参数2表示在current中存在的key将跳过,不在current中的key将添加默认值0(log_missing返回值) print('Before:', dict(result)) for key, amount in increments: result[key] += amount print('After:', dict(result)) >>> Before: {'green': 12, 'blue': 3} Key added Key added After: {'green': 12, 'blue': 20, 'red': 5, 'orange': 9}

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/16526963.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-07-27 django学习第十二天--ajax请求和csrftoken认证的三种方式
点击右上角即可分享
微信分享提示