在大字典中搜索重复值

时间:2016-11-01 08:23:25

标签: python dictionary memory

我目前正在创建一个程序,该程序会创建一个随机的15位数字符串,并找到与字符串相当的SHA-1。

当我转换SHA-1字符串并将其缩短为前15位时,我想在字典中找到任何重复的实例。如果是,它会告诉我分配给它的随机字符串。

你可以想象,这需要永远做。我知道有更有效的方法可以做到这一点,例如二进制搜索或Pollard Rho技术或循环查找,但我在Python中实现这一点很困难。

这是我到目前为止(Python):

for i in range (n):
    t=''.join([random.choice(alpha) for _ in range(15)])
    t=t.encode('utf-8')
    h=hashlib.sha1(t)
    h=(h.hexdigest()[0:15])
    if h in hashDict:
        print ("Duplicate found")
        sha1val=hashlib.sha1(hashDict[h])
        sha2val=hashlib.sha1(t)
        print (hashDict[h],":",sha1val.hexdigest())
        print (t,":",sha2val.hexdigest())
        break
    hashDict[h]=t

0 个答案:

没有答案