我有一个类似的字典:
{u'message': u'Approved', u'reference': u'A71E7A739E24', u'success': True}
我想检索键值对以供参考,即{ 'reference' : 'A71E7A739E24' }
。
我正在尝试使用返回iteritems
对的k, v
执行此操作,然后将其添加到新词典中。但是,由于某些原因,结果值为unicode
而不是str
,我不确定这是否是最简单的方法:
ref = {}
for k, v in charge.iteritems():
if k == 'reference':
ref['reference'] = v
print ref
{'reference':u'A71E7A739E24'}
是否有内置方法可以更轻松地完成此操作?或者,至少,避免使用iteritems
并简单地返回:
{ 'reference' : 'A71E7A739E24' }
答案 0 :(得分:2)
使用iteritems的麻烦在于你将查找时间增加到O(n),其中n是字典大小,因为你不再使用哈希表
答案 1 :(得分:1)
我不明白这个问题:
这就是你要做的事情:
ref={'reference',charge["reference"]}
答案 2 :(得分:1)
如果您只需要获得一个键值对,就像
一样简单ref = { key: d[key] }
如果某些条件选择了多对,
使用来自可迭代构造函数的dict
(如果您的条件依赖于值,第二个版本会更好):
ref = dict(k,d[k] for k in charge if <condition>)
ref = dict(k,v for k,v in charge.iteritems() if <condition>)
或(自2.7)a dict comprehension(以上为语法糖):
ref = {k,d[k] for k in charge if <condition>}
<same as above>