Python 常用语句:修订间差异
跳到导航
跳到搜索
(创建页面,内容为“ ==== Dict ==== Python 字典的顺序问题取决于 Python 的版本: * 3.7 及以后版本,字典保持插入顺序,语言规范特性 * 3.6 CPython 的字典保持插入顺序,非语言规范的一部分,不应该依赖这个行为,因为其他(如 Jython 或 IronPython)可能不保持插入顺序 * 3.5 及更早版本,字典不保持插入顺序。遍历字典时,键值对的顺序是不可预测的 ===== 第一个 Key ===== # d1={'a':…”) |
无编辑摘要 |
||
第11行: | 第11行: | ||
===== 最后一个 Key ===== | ===== 最后一个 Key ===== | ||
list(d1.keys())[-1] | list(d1.keys())[-1] | ||
===== defaultdict ===== | |||
内置字典 dict 的一个子类,可以自动为不存在的键提供一个默认值,从而避免了在访问字典时常见的 KeyError 异常。 | |||
<small><nowiki>from collections import defaultdict | |||
dd1 = defaultdict(int) | |||
dd1['a'] += 1 # 无论 a 是否已经存在,都可以直接累加 | |||
dd2 = defaultdict(list) | |||
dd2['a'].append(1) # 自动创建一个空列表 | |||
dd3 = defaultdict(lambda: {"total": 0, "ok": 0, "err": 0}) | |||
dd3['a']['total'] += 1 # 键不存在时,自动调用 lambda 函数,返回字典</nowiki></small> | |||
[[分类:Develop]] | [[分类:Develop]] | ||
[[分类:Python]] | [[分类:Python]] |
2025年3月14日 (五) 14:49的版本
Dict
Python 字典的顺序问题取决于 Python 的版本:
- 3.7 及以后版本,字典保持插入顺序,语言规范特性
- 3.6 CPython 的字典保持插入顺序,非语言规范的一部分,不应该依赖这个行为,因为其他(如 Jython 或 IronPython)可能不保持插入顺序
- 3.5 及更早版本,字典不保持插入顺序。遍历字典时,键值对的顺序是不可预测的
第一个 Key
# d1={'a':1, 'b':2} next(iter(d1))
最后一个 Key
list(d1.keys())[-1]
defaultdict
内置字典 dict 的一个子类,可以自动为不存在的键提供一个默认值,从而避免了在访问字典时常见的 KeyError 异常。
from collections import defaultdict dd1 = defaultdict(int) dd1['a'] += 1 # 无论 a 是否已经存在,都可以直接累加 dd2 = defaultdict(list) dd2['a'].append(1) # 自动创建一个空列表 dd3 = defaultdict(lambda: {"total": 0, "ok": 0, "err": 0}) dd3['a']['total'] += 1 # 键不存在时,自动调用 lambda 函数,返回字典