Python 不允许将字典用作其他字典中的键。是否有使用非嵌套字典作为键的解决方法?
更复杂的不可散列对象的一般问题和我的具体用例已 移至此处。我对用例的原始描述不正确。
原文由 Casebash 发布,翻译遵循 CC BY-SA 4.0 许可协议
Python 不允许将字典用作其他字典中的键。是否有使用非嵌套字典作为键的解决方法?
更复杂的不可散列对象的一般问题和我的具体用例已 移至此处。我对用例的原始描述不正确。
原文由 Casebash 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果我需要使用字典作为键,我会将字典扁平化为元组的元组。
您可能会发现这个 SO 问题很有用: What is the best way to implement nested dictionaries?
这里是一个扁平化模块的例子,它将扁平化字典:http: //yawpycrypto.sourceforge.net/html/public/Flatten.Flatten-module.html
我不完全理解您的用例,我怀疑您正试图过早地优化不需要优化的东西。
原文由 Michael Dillon 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答873 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
如果你有一个真正不可变的字典(虽然我不清楚为什么你不只使用成对列表:例如
[('content-type', 'text/plain'), ('host', 'example.com')]
),那么你可以转换你的dict
进入:tuple
而不是list
因为结果依赖于元素的排序和不变性。dict
,而第一种方法除了相等之外还需要排序关系。