带有简单摘要输出的差异检查

时间:2019-12-03 15:29:43

标签: python list compare diff

我是Python的新手,想编写一个差异检查程序,该程序对两个输入列表(来自文件)执行基本的差异检查,然后以摘要形式输出差异。

例如,一些摘要统计信息将是:

  1. A中包含但B中不包含的内容的列表
  2. B而不是A的列表
  3. 每个列表中重复项的数量

这将主要用于进行网络上的资产发现协调,因此列表将包含IP或主机名。我的主要要求是寻求帮助,开始这样做。

很抱歉是否已经被问到了,但是在这里我找不到我要做什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

对于前两个,您可以进行设置比较:

>>> A = ['a', 'b', 'c', 'd', 'a']
>>> B = ['q', 'r', 'b', 'b', 'c']
>>> sorted(set(A) - set(B))
['a', 'd']

>>> sorted(set(B) - set(A))
['q', 'r']

对于第三种方法,可以使用Counter库中的collections,该库创建一个字典,该字典计算可迭代项中每个项目的出现次数:

>>> from collections import Counter
>>> {k: v for k, v in Counter(A).items() if v > 1}
{'a': 2}

>>> {k: v for k, v in Counter(B).items() if v > 1}
{'b': 2}

对于“随着时间的推移,其他任何与之相关的事情”-您必须更加具体!