【问题标题】:Three way comparison using hash使用哈希的三路比较
【发布时间】:2017-07-21 09:49:01
【问题描述】:

我需要一种方法来根据我提取的主机名比较三个哈希值。我有一个比较两个功能的功能,但希望将它结合起来以完成所有三个功能。

之前已捕获并存储了所有变量。这只是一个比较检查。

如果可以避免,我不希望我们使用 isdiff 或其他一些功能。

需要比较三个结果。

results1 = {'uspn-hs-r3': ('uspn-hs-r3', 'archive\uspn-hs-r3.cfg', '23d516b3f2f438327b1a19fa63868621a87b8c8b')' 等.....

这些值可以非常,因此比较。字符串太长了,无法显示所有内容。但是,在这种情况下,主机名是 uspn-hs-r3,后跟 :,然后是它所在的目录,然后是哈希。

结果2 结果3

双向比较:

for hostname, filename, filehash in results1.values():
        if hostname in results2:
            _, filename2, filehash2 = results2[hostname]
            if filehash != filehash2:
                print ("%s has a change (%s, %s)" % (
                    hostname, filehash, filehash2))
                print(filename)
                print(filename2)

3 次失败:

for hostname, filename, filehash in results1.values():
    if hostname in results2 and hostname in results3:
        _, filename2, filehash2, filename3, filehash3 = results3[hostname]
        if filehash != filehash2 or filehash != filehash3:
            print ("%s has a change (%s, %s)" % (
                    hostname, filehash, filehash2, filehash3))
            print(filename)
            print(filename2)
            print(filename3)

【问题讨论】:

  • 请展示results1/2/3 的示例,以便我们了解它们的结构以及您想要实现的目标。

标签: python python-2.7 hash string-comparison


【解决方案1】:

您在第 3 行有错误。result3 只有一个大小为 3 的元组,您将其解压缩为 5 个值。

for hostname, filename, filehash in results1.values():
    if hostname in results2 and hostname in results3:
        _, filename2, filehash2 = results2[hostname]
        _, filename3, filehash3 = results3[hostname]
        if filehash != filehash2 or filehash != filehash3:
            print ("%s has a change (%s, %s, %s)" % (
                hostname, filehash, filehash2, filehash3))
            print(filename)
            print(filename2)
            print(filename3)

【讨论】:

  • 我认为做到了。我将运行一些测试来确认,但最初看起来不错。
猜你喜欢
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 2015-03-07
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多