我需要一种方法来根据我提取的主机名比较三种散列。我有一个函数来比较两个函数,但是希望将它合并成一个函数。使用散列的三种方法比较
所有的变量都被捕获并保存。这只是比较检查。
如果可以避免,我不想让我们使用isdiff或其他函数。
需要比较三个结果。
结果1 = { 'USPN-HS-R 3':( 'USPN-HS-R 3', '归档\ 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'的例子,以便我们能够理解它们的结构以及你想要达到的目标。 –