gpt4 book ai didi

python - 在两个列表中查找重叠对象的最快方法

转载 作者:行者123 更新时间:2023-11-28 20:55:17 25 4
gpt4 key购买 nike

我有两个自定义对象列表 traintest,大小分别为 9,904 和 7,223。每个列表中的元素都是唯一的。

我想找到存在于两个 列表中的元素。目前我正在使用以下方法,但速度非常慢:

overlap = [e for e in test if e in train]

有没有更快的方法来实现这一点?

最佳答案

为了完成@Jeff 的回答,我们可以比较两种方法的计算时间:

import numpy as np
import time

test = np.random.randint(1,50000,10000)
train = np.random.randint(1,50000,10000)

start_list = time.time()
overlap = [e for e in test if e in train]
end_list = time.time()
print("with list comprehension: " + str(end_list - start_list))

set_test = set(test)
set_train = set(train)

start_set = time.time()
overlap = set_test.intersection(set_train)
end_set = time.time()
print("with sets: " + str(end_set - start_set))

我们得到输出:

with list comprehension: 0.08894968032836914
with sets: 0.0003533363342285156

因此使用集合的方法快了大约 300 倍。

关于python - 在两个列表中查找重叠对象的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57161245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com