【发布时间】:2015-06-10 03:10:03
【问题描述】:
我正在使用 freezesets 来保留字典的键,以利用联合、差异和交叉操作。但是当我尝试通过 dict.get() 从字典中的键检索值时,它会产生一个 None 值。
newDict = {'a': 1, 'b': 2, 'c': 3, 'd': True}
stKeys = set(newDict)
stA = frozenset('a')
stB = frozenset('b')
stC = frozenset('c')
stD = frozenset('d')
print(stKeys)
print(newDict.get(stA & stKeys))
print(newDict.get(stB & stKeys))
print(newDict.get(stC & stKeys))
print(newDict.get(stD & stKeys))
制作:
>>>None
>>>None
>>>None
>>>None
甚至:
print(newDict.get(stA))
print(newDict.get(stB))
print(newDict.get(stC))
print(newDict.get(stD))
制作:
>>>None
>>>None
>>>None
>>>None
如果您的键在冻结集中,如何从字典中检索值?
感谢Martijn Pieters!答案是 DVO(字典视图 对象)和生成器表达式(如果要将结果添加到 一个列表()
【问题讨论】:
-
为什么你认为键是冻结集?
-
Python 字典不支持这样的集合查找,不。
-
您期望的输出是什么?
标签: python dictionary set key frozenset