哈希字符串列表元素并保存到新列表中



我正在尝试以100个名称,将每个名称放到8位,然后将其保存到新列表中。我知道,使用8位很可能会导致碰撞,我试图以它们的碰撞速度查看,我希望将此代码片段包括在我的论文中。

我相信我的逻辑还可以,只是语法引起了我的问题。任何帮助都将不胜感激。

import hashlib
list = ["Cammy", "Maisha", "Lizette", "Marjorie", "Shaquita", "Rueben", "Fatima", "Maynard",
        "Laurena", "Lauren", "Allyson", "Pearlie", "Bethel", "Daniell", "Laurinda", "Crista",
        "Ching", "Kareen", "Beth", "Stephnie", "Manie", "Kareem", "Titus", "Humberto",
        "Lauretta", "Rob", "Raul", "Damion", "Stephani", "Carin", "Sharla", "Eleonor", "Naida",
        "Ashley", "Rachel", "Graig", "Raymonde", "Shalanda", "Annetta", "Lissette", "Sandi",
        "Alda", "Arlinda", "Ashlee", "Marguerite", "Tammi", "Denisha", "Genie", "Elizbeth",
        "Elvie", "Markus", "Marquitta", "Arla", "Vanda", "Devon", "Meagan", "Taryn", "Lina",
        "Shea", "Leighann", "Janel", "Sanora",  "Harmony", "Concetta", "Dwayne", "Kyla",
        "Evonne", "Mauro", "Deane", "Chester", "Inez", "Tari", "Maribeth", "Ariel", "Elisa",
        "Maurice", "Dung", "Mona", "Hung", "Maximina", "Demarcus", "Jayson", "Jenny", "Duane",
        "Reginia", "Gennie", "Orval", "Venus", "Craig", "Lessie", "Madaline", "Paulina",
        "Aletha", "Gisele", "Sheena", "Devora", "Arcelia", "Ericka", "Colene", "Hildegard"]
newlist = []
for i in list:
    newlist = hash(list[i] % 10**8)
for i in newlist:
    print(i)

而无需触摸逻辑,以使您的代码工作要替换这些行:

for i in list:
    newlist = hash(list[i] % 10**8)

for i in list:
    newlist.append(hash(i) % 10**8)

一些澄清:

在Python中,您可以在任何列表对象上使用.append()在该列表的末尾添加元素。在这种情况下,您将填写上面初始化的空列表,其中包含循环中的元素。此外,除了例如经典的Java循环,在Python中,您可以直接在列表上迭代,因此i每次都涉及列表的不同元素。因此,无需每次尝试以某个索引访问列表。希望这会有所帮助!

最新更新