转换为设置 'before' 启动循环在 Python 中更快?

Converting to set 'before' starting loop is faster in Python?

我有一个长度为 100000 的大型一维列表 arr1,其中可能包含重复项,而另一个列表 arr2 包含 arr1 中的许多元素,但不能有重复项。我希望将也在 arr2 中的 arr1 的所有元素附加到第三个列表 arr3:

file = []
with open('input.txt') as inputfile:
    for line in inputfile:
        file.append(line.strip().split(' '))

arr1 = file[1]     # 2nd line of input file
arr2 = file[2]     # 3rd line of input file

arr2 = set(arr2)
arr3 = [element for element in arr1 if element in arr2]

工作正常。但是当我尝试时:

arr3 = [element for element in arr1 if element in set(arr2)]

与最后两行相反,我希望得到完全相同的结果,因为它们看起来是一样的,但是 运行 这种方式需要很长时间。这些有什么不同吗?

Here 是输入文件。

if 语句在每次迭代中都是 运行 - 因此每次迭代都会转换为 set。

在比较循环成为解决方案之前,您需要转换为集合。