使用简单的摘要输出进行差异检查



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

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

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

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

如果已经问过这个问题,我深表歉意,但我在这里找不到我具体想做的事情。

谢谢!

对于前两个,您可以只进行集合比较:

>>> 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']

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

>>> 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}

对于"随着时间的推移变得相关的任何其他内容" - 您必须更具体!

相关内容

  • 没有找到相关文章

最新更新