Python 数据结构与编程技巧深度解析
1. 字典相关知识
字典在 Python 中是一种非常重要的数据结构,它可以将键映射到对应的值。在表示字典时,通常用一个上方标有 dict 的盒子来表示,盒子内部包含键值对。如果值是整数、浮点数或字符串,一般会将它们画在盒子内;而列表通常画在盒子外,以简化图表。
需要注意的是,列表可以作为字典的值,但不能作为键。例如:
t = [1, 2, 3]
d = dict()
d[t] = 'oops'
运行上述代码会报错,错误信息为 TypeError: list objects are unhashable 。这是因为字典是通过哈希表实现的,键必须是可哈希的。哈希函数可以将任意类型的值转换为整数,字典使用这些整数(哈希值)来存储和查找键值对。如果键是可变的(如列表),就会出现问题。当创建键值对时,Python 会对键进行哈希并存储在相应位置,但如果修改了键再进行哈希,它会指向不同的位置,导致字典无法正常工作。
为了绕过这个限制,最简单的方法是使用元组,后续会详细介绍元组。此外,由于字典是可变的,它不能作为键,但可以作为值。
下面是一些与字典相关的练习:
- 练习 11.5 :阅读字典方法 setdefault 的文档,并使用它编写一个更简洁的 invert_dict 版本。
- 练习 11.8
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



