字典方法
使用 get、keys、values、items、update 和 pop。
字典方法 是 CoddyKit 上的免费 Python Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 4 节课。
简介
Python 字典提供了丰富的方法,用于合并、转换数据以及安全地访问数据。
keys()、values()、items()
这些方法返回的视图对象会反映字典的变化。如果需要快照,请将其转换为列表。
d = {'a': 1, 'b': 2}
print(list(d.keys()))
print(list(d.values()))
print(list(d.items()))update()
d.update({'c': 3, 'd': 4}) 会合并另一个字典。已有的键会被覆盖。
d = {'a': 1}
d.update({'b': 2, 'a': 99})
print(d)带默认值的 pop()
d.pop('key', default) 会删除并返回对应的值。如果键不存在且没有提供默认值,就会引发 KeyError。
d = {'a': 1, 'b': 2}
val = d.pop('a')
print(val, d)popitem()
d.popitem() 会删除并返回最后插入的键值对 (key, value)。对空字典调用时会引发 KeyError。
d = {'a': 1, 'b': 2}
print(d.popitem())
print(d)setdefault()
d.setdefault('key', default) 会在键不存在时插入默认值,并返回该值。这样可以避免重复执行 get + set。
d = {}
d.setdefault('count', 0)
d['count'] += 1
print(d)使用 | 合并(Python 3.9+)
d1 | d2 会返回一个新的合并字典。d1 |= d2 会就地更新 d1。这样比 update() 更简洁。
d1 = {'a': 1}
d2 = {'b': 2}
print(d1 | d2)copy() 与 deepcopy()
d.copy() 会创建浅拷贝。对于嵌套字典,请使用 copy.deepcopy(d),以避免共享引用。
import copy
d = {'a': [1,2]}
deep = copy.deepcopy(d)
deep['a'].append(3)
print(d, deep)collections 中的 Counter
from collections import Counter; Counter('banana') 会自动统计字符频率。
from collections import Counter
c = Counter('banana')
print(c)defaultdict
from collections import defaultdict; d = defaultdict(list) 会为缺失的键自动创建空列表。
from collections import defaultdict
d = defaultdict(list)
d['a'].append(1)
print(d)OrderedDict(旧版提示)
在 Python 3.7 及更高版本中,普通字典会保留插入顺序。OrderedDict 仍适用于 move_to_end() 以及依赖顺序的相等性比较。
from collections import OrderedDict
od = OrderedDict({'a':1,'b':2})
od.move_to_end('a')
print(list(od))快速检查
如果 'key' 不在 d 中,d.setdefault('key', 0) 会做什么?
回顾
字典方法:update、pop/popitem、setdefault、copy/deepcopy。使用 Counter 统计频率,使用 defaultdict 避免检查缺失的键,使用 | 进行合并(3.9 及更高版本)。
继续学习
做得很好!请继续学习下一课,进一步提升您的技能。
常见问题解答
「字典方法」课时是免费的吗?
是的 — 「字典方法」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 4 节课。
「字典方法」这节课中我会学到什么?
使用 get、keys、values、items、update 和 pop。 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「字典方法」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。