【发布时间】:2013-01-06 13:17:03
【问题描述】:
我发生了一件非常奇怪的事情。我正在尝试遍历一组字典以查找具有与字段键相关的特定值的所有项目。采取以下措施:
ex_set 是我无法控制的 mysql 系统的输出。如果我必须使用 python 重新创建它,它会是这样的:
dict_a [ 'field' ] = 'fruit'
dict_a [ 'value' ] = 'apple'
dict_b [ 'field' ] = 'fruit'
dict_b [ 'value' ] = 'berry'
ex_set = set()
ex_set.add (dict_a,dict_b)
重要的是当我打印它时该集合的外观。
pprint (ex_set)
OUTPUTS> ({'field' : 'fruit',
'value' : 'apple'},
'field' : 'fruit'},
'value' : 'berry'})
i = 0
while len ( ex_set ) > i:
for k , v in ex_set [i].iteritems ( ):
if v == 'fruit':
pprint ( ex_set[i] )
i += 1
问题是 this 的打印不会打印所有具有 value = "fruit" 的字典。
有没有更好的方法来搜索一组字典?我正在搜索的集合在每个字典和大约 30k 字典中有 3 个键/值组合。这大约有 25% 的时间有效,我不知道为什么它只返回大约 20% 的匹配项。
感谢您的帮助!
【问题讨论】:
-
贴一个更好的例子,
ex_set是无效的python。 -
这不可能是实际代码...因为它不起作用。
标签: python search set dictionary