刚刚编写了一个文件比较程序,就遇到了这个问题。我甚至不能理解为什么会这样。我尽了最大努力在谷歌上搜索这个问题,但有点难。运行此代码时:
while a < len(filehashes) and b < len(inphashes):
if filehashes[a][1] == filehashes[b][1]:
print(filehashes[a][1] + ' == ' + inphashes[b][1])
a += 1
b += 1
else:
print('Inconsistency error')
我得到这个输出:
ee53f15519619c51f205553c828e7546 == ef53f15519619c51f205553c828e7546
filehashes
和inphashes
都是str列表(即[['honk','donk'],['bonk','ponk']]
)。你知道吗
这是filehashes[a][1]
和inphashes[b][1]
的预期内容。很明显,它们实际上并不相等('ee...' != 'ef...'
)。究竟是什么原因造成的,我该如何解决?你知道吗
if条件是
filehashes[a][1] ==
filehashes[b][1]
,而打印行是print(filehashes[a][1] + ' == ' +
inhashes[b][1]
)。注意区别。我不清楚你在问什么。我想这就是答案。如果没有,请对此发表评论,然后我将删除此答案。你知道吗你不是在比较
filehashes[a][1] == inphashes[b][1]
。您正在比较:注意这些名称,在这里索引到相同的结构中。如果
a == b
,则可以保证对同一对象进行比较,但对于任何重复的哈希值都是如此。你知道吗或许你的意思是:
如果您所做的只是同时增加
a
和b
,并且它们保持相等,那么您也可以在这里使用zip
:相关问题 更多 >
编程相关推荐