欢迎光临散文网 会员登陆 & 注册

用 Python 求两组东西的交集

2023-07-28 18:10 作者:Mr蓝珲  | 我要投稿

有两个列表 L1 与 L2。 L1 中有 1 万个字符串, L2 中有 10 万个字符串。


L1 看起来像这样: ['RAWP', 'IDFS', ...]


L2 看起来像这样: ['XSJB', 'LLCV', 'NKEI', 'ITNY', 'TSVA', 'VQCR', 'EJVQ', 'CRMA', 'SMGO', 'CLKV', ...]


产生数据的函数 make_data()


如何以最快的速度找到这两个列表的交集?


方法一:上 for 循环, 需要 6 秒。比人快 1000 倍。

方法一:6 秒



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

方法二:6 毫秒



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

方法三:2 毫秒


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


用 Python 求两组东西的交集的评论 (共 条)

分享到微博请遵守国家法律