van*_*van 3 python optimization
有没有更快的方法在Python中计算这个值:
len([x for x in my_list if x in other_list])
Run Code Online (Sandbox Code Playgroud)
我尝试使用集合,因为列表的元素是唯一的,但我注意到没有区别.
len(set(my_list).intersection(set(other_list)))
Run Code Online (Sandbox Code Playgroud)
我正在处理大型名单,所以即使是最轻微的改进也很重要.谢谢
简单的方法是找到最小长度列表...而不是使用set.intersection...,例如:
a = range(100)
b = range(50)
fst, snd = (a, b) if len(a) < len(b) else (b, a)
len(set(fst).intersection(snd))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |