Cas*_*ash 25 python dictionary data-structures
Python不允许将字典用作其他字典中的键.是否有使用非嵌套字典作为键的解决方法?
更复杂的不可清除对象和我的特定用例的一般问题已经移到这里.我对用例的原始描述不正确.
And*_*ikh 58
如果你有一个真正不可变的字典(虽然我不清楚为什么你不只是使用一对配对列表:例如[('content-type', 'text/plain'), ('host', 'example.com')]
),那么你可以将你转换dict
为:
成对的元组.你已经在你的问题中做到了这一点.A tuple
是必需的,而不是list
因为结果依赖于元素的排序和不变性.
>>> tuple(sorted(a.items()))
Run Code Online (Sandbox Code Playgroud)一套冷冻.从数学的角度来看,这是一种更合适的方法,因为它只需要对不可变元素的等式关系dict
,而第一种方法除了相等之外还需要有序关系.
>>> frozenset(a.items())
Run Code Online (Sandbox Code Playgroud)如果我需要使用字典作为键,我会将字典拼成一个元组元组.
您可能会发现此SO问题很有用:实现嵌套字典的最佳方法是什么?
这里有一个扁平模块的例子,它将扁平化字典:http://yawpycrypto.sourceforge.net/html/public/Flatten.Flatten-module.html
我不完全理解您的用例,我怀疑您正试图过早地优化不需要优化的东西.
要将 someDictionary 转换为键,请执行以下操作
key = tuple(sorted(someDictionary .items())
Run Code Online (Sandbox Code Playgroud)
您可以轻松地将其反转 dict( key )
归档时间: |
|
查看次数: |
19949 次 |
最近记录: |