用 Python 求兩組東西的交集
有兩個(gè)列表 L1 與 L2。 L1 中有 1 萬個(gè)字符串, L2 中有 10 萬個(gè)字符串。
L1 看起來像這樣: ['RAWP', 'IDFS', ...]
L2 看起來像這樣: ['XSJB', 'LLCV', 'NKEI', 'ITNY', 'TSVA', 'VQCR', 'EJVQ', 'CRMA', 'SMGO', 'CLKV', ...]

如何以最快的速度找到這兩個(gè)列表的交集?
方法一:上?for 循環(huán), 需要 6 秒。比人快 1000 倍。

方法二:先將兩個(gè)列表轉(zhuǎn)為集合,S1 與 S2, 再用 S1 & S2 求兩個(gè)集合的交集, 需要 6 毫秒。方法二比方法一快了 1000 倍。因此,永遠(yuǎn)不要用 for 循環(huán)去求交集。

方法三:先將 L1 轉(zhuǎn)化為集合 S1, 然后用 S1.intersection(L2) 求集合與列表的交集, 需要 2 毫秒。

可見, 把列表轉(zhuǎn)為集合是需要花時(shí)間的。方法三只轉(zhuǎn)了一次,而方法二轉(zhuǎn)了二次,這就是慢了 4 毫秒的主要原因。