优化字典上的嵌套循环

时间:2015-04-09 14:06:49

标签: python loops optimization dictionary

我分别有3个词典:queries_dictactions_dictresults_dict800k700K7M个词组。要查找与哪个结果相关的操作,我必须使用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)

1 个答案:

答案 0 :(得分:0)

你可以viewitems()使用sets这个帖子作为{{1}},并且因为集合有O(1)来检查成员资格。(但是当你的值可以清洗时它可能!) )

  

如果所有值都是可清除的,那么(键,值)对是唯一且可清除的,那么项目视图也是类似于设置。