我有两个“大”清单!他们两个都有大约24.000多个项目,我必须选择:
作为我的计算,如果我运行循环来发现差异,那么将有24.000x2 = 48.000个循环!
无论如何,有没有比我更快的比较?
只是一个例子:
清单1的值:| 一个| 一个| b | c | d | e |
清单2的值:| 一个| b | c | g | 一个|
结果必须是:=> d,e,g
非常感谢!
在Python中,您可以执行以下操作:
first = set("aabcde")
second = set("abcga")
first ^ second
#>>> {'g', 'e', 'd'}
这样做会更快一些:
first = "aabcde"
second = "abcga"
first, second = sorted([first, second], key=len)
set(first).symmetric_difference(second)
#>>> {'e', 'g', 'd'}
避免从较大的列表中进行设置。
您甚至可能想要:
first = "aabcde"
second = "abcga"
set_first = set(first)
set_first.symmetric_difference_update(second)
set_first
#>>> {'e', 'g', 'd'}
即使这样,24k物品也很小,因此没有真正的担心。
手动方式是:
first = set("aabcde")
second = set("abcga")
difference = set()
for item in first:
if item not in second:
difference.add(item)
for item in second:
if item not in first:
difference.add(item)
difference
#>>> {'e', 'g', 'd'}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句