Python 常用语句:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
(创建页面,内容为“ ==== 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 函数,返回字典