题目
47.判断题。包含列表的元组可以作为字典的键。A. 对B. 错
47.判断题。包含列表的元组可以作为字典的键。
A. 对
B. 错
题目解答
答案
B. 错
解析
本题考查字典键的特性以及不可变对象的概念。解题的关键在于明确字典的键必须是不可变对象,然后判断包含列表的元组是否满足这一条件。
详细解析
- 字典是一种无序的数据结构,它由键 - 值对组成。在字典中,键必须是不可变对象,这是因为字典在内部使用哈希表来存储键 - 值对,而哈希表需要键具有固定的哈希值,只有不可变对象才能保证其哈希值在对象的生命周期内不会发生变化。
- 不可变对象是指一旦创建,其值就不能被修改的对象,例如数字、字符串、元组等。而可变对象是指其值可以被修改的对象,例如列表、字典等。
- 对于包含列表的元组,虽然元组本身是不可变的,但是元组中的列表是可变的。例如,我们有一个元组
t = (1, [2, 3]),我们可以通过t[1].append(4)来修改元组中的列表,这就导致元组的内容发生了变化。由于元组的内容可以改变,其哈希值也可能会改变,所以包含列表的元组不能作为字典的键。