我分别有3个词典:queries_dict
,actions_dict
,results_dict
,800k
,700K
和7M
个词组。要查找与哪个结果相关的操作,我必须使用queries_dict
。我想优化以下嵌套循环:
for q_id, q in queries_dict.iteritems():
for ac_id, ac in ((ac_id, ac) for (ac_id, ac) in actions_dict.iteritems() if ac.query_id == q.query_id and q.session_id == ac.session_id):
for r in q.results:
if r.rank_of_result == ac.rank_of_result:
results_dict[r.result_id].actions.append(ac)
答案 0 :(得分:0)
你可以viewitems()
使用sets
这个帖子作为{{1}},并且因为集合有O(1)来检查成员资格。(但是当你的值可以清洗时它可能!) )
如果所有值都是可清除的,那么(键,值)对是唯一且可清除的,那么项目视图也是类似于设置。