我正在尝试以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
每次都涉及列表的不同元素。因此,无需每次尝试以某个索引访问列表。希望这会有所帮助!