簡體   English   中英

了解哪種對象可以是字典鍵

[英]Understanding what sort of objects can be dictionary keys

我正在與一個SO用戶進行討論,我們正在嘗試確定一個Python模塊,當它保存在一個變量中時 - 例如sys ,在import sys - 是可變的還是不可變的。

有沒有人有一個好的答案?

問題產生於討論什么類型的對象可以成為Python dicts Python文檔聲稱“只有不可變元素可以用作字典鍵,因此只有元組而不是列表可以用作鍵。” 但是一個模塊 - 作為可變對象的一個​​例子 - 可以用作密鑰,如

x = {sys: 1}

Python文檔聲稱“只有不可變元素可以用作字典鍵,因此只有元組而不是列表可以用作鍵。” 但是一個模塊 - 作為可變對象的一個​​例子 - 可以用作密鑰

事情必須是不可變的才能被用作dict鍵並不完全正確。 相反,考慮進行==比較的關於它們的一切都必須是不可變的。 == for modules按對象標識工作,所以做類似的事情

import sys
sys.foo = 3

不會更改用於==比較的任何信息。 因此,它們可以用作dict鍵。

這是可變的。 你可以做這樣的事情:

>>> import sys
>>> sys.blah = 100
>>> sys.blah
100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM