gpt4 book ai didi

python - 理解什么样的对象可以是字典键

转载 作者:行者123 更新时间:2023-11-28 20:20:57 26 4
gpt4 key购买 nike

我正在与一位 SO 用户进行讨论,在讨论中我们试图确定一个 Python 模块是否保存在一个变量中——例如,sys,在 import sys -- 是可变的还是不可变的。

有没有人有好的答案?

这个问题源于关于什么样的对象可以成为 Python dicts 的键的讨论。 Python docs声称“只有不可变元素可以用作字典键,因此只有元组而不是列表可以用作键。”但是模块——作为可变对象的一个​​例子——可以用作键,如

x = {sys: 1}

最佳答案

The Python docs claim that "only immutable elements can be used as dictionary keys, and hence only tuples and not lists can be used as keys." But a module -- as just one example of a mutable object -- can be used as a key

事物必须是不可变的才能用作字典键,这并不完全正确。相反,考虑用于 == 比较的关于它们的所有内容都必须是不可变的。 == for modules works by object identity, so doing something like

import sys
sys.foo = 3

不会更改用于== 比较的任何信息。因此,它们可以用作字典键。

关于python - 理解什么样的对象可以是字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com