Skip to main content
 首页 » 编程设计

Python 脚本需要很多时间/列表理解

2025年05月04日13lonelyxmas

我有一个小脚本,它根据 CSV 输入文件比较第一个列表中有多少项在第二个列表中。但是在引用较多的情况下,运行需要一定的时间。

data_1 = import_csv("test1.csv") 
 
print(len(data_1)) 
 
data_2 = import_csv("test2.csv") 
 
print(len(data_2)) 
 
data_to_keep = len([i for i in data_1 if i in data_2]) 

我刚刚运行了一个测试,第一个列表包含 598756 个项目,第二个列表包含 76612 个项目,脚本尚未完成。

由于我对 Python 还是比较陌生,所以我想知道是否有最快的方法来实现我想要做的事情。感谢您的帮助:)

编辑:导入 CSV 看起来像这样:

def import_csv(csvfilename): 
    data = [] 
    with open(csvfilename, "r", encoding="utf-8", errors="ignore") as scraped: 
        reader = csv.reader(scraped, delimiter=',') 
        for row in reader: 
            if row:  # avoid blank lines 
                data.append(row[0]) 
 
    return data 

请您参考如下方法:

将 data_2 设为一个集合。

data_2 = set(import_csv("test2.csv")) 

在 Python 中,集合可以更快地检查对象是否存在(使用 in 运算符)。

您可能还会看到切换输入顺序的一些改进。将较大的文件设为集合,这样当您遍历较小文件的元素时,您可以减少查找次数。