用 Python 求两组东西的交集
有两个列表 L1 与 L2。 L1 中有 1 万个字符串, L2 中有 10 万个字符串。
L1 看起来像这样: ['RAWP', 'IDFS', ...]
L2 看起来像这样: ['XSJB', 'LLCV', 'NKEI', 'ITNY', 'TSVA', 'VQCR', 'EJVQ', 'CRMA', 'SMGO', 'CLKV', ...]

如何以最快的速度找到这两个列表的交集?
方法一:上 for 循环, 需要 6 秒。比人快 1000 倍。

方法二:先将两个列表转为集合,S1 与 S2, 再用 S1 & S2 求两个集合的交集, 需要 6 毫秒。方法二比方法一快了 1000 倍。因此,永远不要用 for 循环去求交集。

方法三:先将 L1 转化为集合 S1, 然后用 S1.intersection(L2) 求集合与列表的交集, 需要 2 毫秒。

可见, 把列表转为集合是需要花时间的。方法三只转了一次,而方法二转了二次,这就是慢了 4 毫秒的主要原因。

