比较两个大列表中的项目

Minh Nguyen-Phuong-Hoang

我有两个“大”清单!他们两个都有大约24.000多个项目,我必须选择:

  • 清单1中有什么项目,但清单2中没有什么项目
  • 清单2中有什么项目,但清单1中没有什么项目

作为我的计算,如果我运行循环来发现差异,那么将有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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较两个大列表中的项目

来自分类Dev

比较python中的两个大列表

来自分类Dev

比较Java中的两个大列表

来自分类Dev

比较python中的两个大列表

来自分类Dev

如何比较两个列表中的项目Python 3.3

来自分类Dev

在for循环中,两个列表中的项目相互比较?

来自分类Dev

比较Mathematica中的两个列表

来自分类Dev

比较Scala中的两个列表

来自分类Dev

Python中的两个列表比较

来自分类Dev

比较Scala中的两个列表

来自分类Dev

比较列表中的两个项目,然后在索引处拆分为较小的列表

来自分类Dev

在两个列表中搜索项目

来自分类Dev

比较两个列表中的项目,并用LINQ替换foreach循环

来自分类Dev

用Ruby比较数组中的两个项目

来自分类Dev

比较两个列表以获取同时出现在两个列表中的对象

来自分类Dev

比较两个列表以获取同时出现在两个列表中的对象

来自分类Dev

两个大矩阵的matlab比较

来自分类Dev

是否有一个列表来比较两个列表之间的项目属性?

来自分类Dev

两个列表,在python中更快的比较

来自分类Dev

比较两个列表中对象的值

来自分类Dev

比较python中两个列表的最佳算法

来自分类Dev

在C#中通过LINQ比较两个列表?

来自分类Dev

比较JSTL标记中的两个列表值

来自分类Dev

比较OCaml中的两个整数列表

来自分类Dev

比较Python中的两个未知列表

来自分类Dev

比较两个data.frames列表中的名称?

来自分类Dev

如何比较R中的两个列表

来自分类Dev

如何在python中迭代比较两个列表?

来自分类Dev

比较两个列表中Elixir的相似性