gpt4 book ai didi

Python 对字符串进行哈希处理

转载 作者:行者123 更新时间:2023-12-01 05:00:37 27 4
gpt4 key购买 nike

我正在尝试创建一个函数,该函数接受字符串(键)并返回哈希表的槽号。这样:

for key_word in ["John","Jane"]:
print(key_word, special_hash(key_word, 13))
>>> John 8
Jane 4

该函数需要使用字母位置将字符串中的每个字母转换为数字形式(例如a=1、b=2、c=3等)。所以散列将是: John = 10+15+8+14= 47 -----> = 47 % tablesize(13)

最佳答案

您可以使用 lower 函数将字符串转换为小写,并使用 for 循环迭代单词中的字符,如下所示

def special_hash(word, tablesize):
for char in word.lower():
...

然后就可以得到ord字符对应的字符代码功能。

def special_hash(word, tablesize):
total_value = 0
for char in word.lower():
total_value += ord(char) - ord('a') + 1

由于我们需要获取字符在字母表中的偏移量,因此可以从当前值中减去第一个值。最后,您可以使用模运算符 % 来获取除以 tablesize

的余数
def special_hash(word, tablesize):
total_value = 0
for char in word.lower():
total_value += ord(char) - ord('a') + 1
return total_value % tablesize

同样可以用 generator expression 简洁地写成和内置sum函数,像这样

def special_hash(word, tablesize):
return sum(ord(char) - ord('a') + 1 for char in word.lower()) % tablesize

关于Python 对字符串进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com