在Python中,列表能否作为字典的键使用?

19 浏览
0 Comments

在Python中,列表能否作为字典的键使用?

我读到说在Python中,列表不能作为字典的键,但我尝试了一下,它却能正常工作。我错过了什么?这是我尝试的代码:

a = {'hello': 2, '[2,4,3]': 'hi'}
print(a)

结果为:

{'hello': 2, '[2,4,3]': 'hi'}

0
0 Comments

列表不能作为字典的键是因为列表是可变的,而字典的键必须是不可变的数据类型。当尝试将一个列表作为键时,会引发TypeError异常,提示"unhashable type: 'list'"。

解决方法是将列表转换为不可变的数据类型,例如元组。可以通过将列表转换为元组来解决这个问题。

下面是一个示例代码,演示如何将列表转换为元组并将其用作字典的键:

my_list = [2, 4, 3]
my_dict = {}
my_key = tuple(my_list)
my_dict[my_key] = "value"
print(my_dict)

运行上述代码,将输出以下结果:

{(2, 4, 3): 'value'}

通过将列表转换为元组,我们成功将其用作字典的键。这是因为元组是不可变的,可以用作字典的键。

0