Python 字典中允许作为键的东西是什么?

问题描述 投票:0回答:3

假设 a = dict(), a['键'] = 值 这里有什么限制?可以是列表、元组、字符串、另一个字典、整数吗?

python-3.x dictionary
3个回答
1
投票

密钥必须是不可变的。

这是唯一的限制。
例如,
如果元组中的项目是不可变的,您可以使用元组作为键:

(1,2)
但你不能这样做
([1,2])

阅读有关不可变和可变类型的更多信息以获得清晰的想法。


1
投票

“字典中的键必须是不可变数据类型之一(数字、字符串、元组)。” - Runstone Academy 出版的《Python 编程基础》教科书,第 17.2 章。嵌套字典。


0
投票

来自 dict 文档

字典的键是几乎任意值。不可哈希的值,即包含列表、字典或其他可变类型的值(按值而不是对象标识进行比较)不能用作键。比较相等的值(例如 1

1.0
True
)可以互换使用来索引相同的字典条目。

所以像字符串、数字这样的不可变类型是可以的。像字典和列表这样的可变类型是不行的。元组只要不包含可变元素就可以。如果数据类具有
frozen=True

,那么就可以了。

如果您需要在类型级别强制执行此操作,可以使用 

typing.Hashable

    

© www.soinside.com 2019 - 2024. All rights reserved.