Skip to main content
 首页 » 编程设计

python之如何在其他列表中进行比较和插入的高效循环

2025年05月04日9java哥

我正在开发一个处理大型数据库的 Web 应用程序 (Python/Django),我需要优化此循环以获得更好的执行时间。

我有一个条目列表,每个条目都有一个 yes_count 属性、一个 no_count 属性和一个 tid 属性。

我需要根据比率创建两个新列表 = yes_count/(yes_count + no_count)

使用内置函数是否是更好的方法(或更快的方法)?

yes_entries = [] 
no_entries = [] 
 
for e in entries: 
    if e.tid in tids: 
        if e.yes_count > 0 or e.no_count > 0: 
            ratio = e.yes_count / (e.yes_count + e.no_count) 
            if ratio > 0.75: 
                yes_entries.append(e.tid) 
            elif ratio < 0.25: 
                no_entries.append(e.tid) 

请您参考如下方法:

我建议将 tids 设为 O(1) 分摊查找速度的集合(相对于列表的 O(N)):

set_tids = set(tids) 

在 for 循环之前,然后

if e.tid in set_tids 

否则你给出的其余代码看起来非常优化