【发布时间】:2022-01-05 10:19:45
【问题描述】:
对于我大学的密码学课程,我需要比较许多保存在数组中的 SHA 哈希。我需要比较数组索引的值。
数组中有重复项 - 我已经通过一组数组的长度和数组本身的长度之间的比较检查了这一点。
现在我需要有重复值的索引。我找到了很多检查重复项的解决方案,但仅限于短数组。我的数组长度为 300 万,每个索引中的值都在这个长度附近:864205495604807476120572616017955259175325408501。
我编写了一个嵌套循环(来自 Java 并尝试学习 python)。这是我的代码:
counter_outer = 0
while counter_outer < len(hash_value_array):
counter_inner = counter_outer + 1
while counter_inner < len(hash_value_array):
if hash_value_array[counter_outer] == hash_value_array[counter_inner]:
print(f"*****FOUND MATCH *****")
print(f"Message [{counter_outer}] Hashvalue has same Value as Message [{counter_inner}]")
safe_index1 = counter_outer
safe_index2 = counter_inner
counter_outer = len(hash_value_array)
break
else:
print("------NO Match-----")
counter_inner += 1
counter_outer += 1
你可以想象...这需要很长时间。
对我来说重要的是,我需要重复项所在的索引 - 而不是值。例如,如果索引 100 中有 898,索引 1000001 中有 898,我只需要输出:100, 1000001
有什么建议吗?
【问题讨论】:
-
"有什么建议吗?" - 是的,向我们展示很好的完整示例输入和输出。
标签: python arrays list loops duplicates