您的测试做的事情完全不同。S为1M元素,T为300:
[x for x in S for y in T if x==y]= 54.875
此选项进行300M相等性比较。
filter(lambda x:x in S,T)= 0.391000032425
此选项对S执行300次线性搜索。
[val for val in S if val in T]= 12.6089999676
此选项对T执行1M线性搜索。
list(set(S) & set(T))= 0.125
此选项执行两个设置构造和一个设置相交。
这些选项之间的性能差异与每个选项所使用的算法关系更大, 而 不是列表理解和之间的任何差异
lambda。



