【问题标题】:Optimizing nested loops over dictionaries优化字典上的嵌套循环
【发布时间】:2015-04-09 22:15:23
【问题描述】:

我有 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)

【问题讨论】:

    标签: python loops optimization dictionary


    【解决方案1】:

    您可以使用Dictionary view objects 之类的viewitems() 该线程作为sets 并且集合具有O(1) 来检查成员资格。(但只有当您的值是可散列的时才有可能!!)

    如果所有值都是可散列的,那么 (key, value) 对是唯一且可散列的,那么项目视图也是类似集合的。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      • 2015-05-29
      • 2020-05-18
      相关资源
      最近更新 更多