Python 不允许将字典用作其他字典中的键。是否有使用非嵌套字典作为键的解决方法?
更复杂的不可散列对象和我的具体用例的一般问题是搬到这里 https://stackoverflow.com/questions/1611797/using-non-hashable-python-objects-as-keys-in-dictionaries/1612220#1612220。我对用例的原始描述是不正确的。
如果你有一个真正不可变的字典(尽管我不清楚为什么你不只使用成对的列表:例如[('content-type', 'text/plain'), ('host', 'example.com')]
),那么你可以转换你的dict
into:
-
成对的元组。你已经在你的问题中做到了这一点。 Atuple
是必需的而不是list
因为结果依赖于元素的排序和不变性。
>>> tuple(sorted(a.items()))
-
冷冻套装。从数学角度来看,这是一种更合适的方法,因为它需要只有平等关系关于你不可变的元素dict
,而第一种方法除了相等之外还需要排序关系。
>>> frozenset(a.items())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)