gpt4 book ai didi

python - 为什么在尝试修改字典 : "TypeError: unhashable type: ' slice' 时出现此错误

转载 作者:行者123 更新时间:2023-11-28 21:19:59 24 4
gpt4 key购买 nike

我正在尝试构建一个函数,它将一个字符串和一个数字 k 作为输入,并返回一个字典,其键是原始字符串中长度为 k 的字符串,每个键的值是一个序列字符串出现的索引。

运行示例:

<<< hash_sequence("byebyeboy",3 ( 

{ 'yeb': [1, 4], 'boy': [6], 'bye': [0, 3], 'ebo': [5], 'eby':
[2] }

这是我的代码:

def hash_sequence(string, k):
dictionary={}
for i in range(len(string)):
dictionary[i:i+3]=[i]
if dictionary[i:i+3] in dictionary:
dictionary[i:i+3]+=[1]
return dictionary

最佳答案

哦,我明白你想做什么 - 切片 string。错误的语法。

dictionary[i:i+3]=[i]

应该是

dictionary[string[i:i+3]]= [i]

同样 if dictionary[i:i+3] in dictionary: 变为 if string[i:i+3] in dictionary: 等等.

老实说,您这样做的方式使代码非常困惑。如果您使用 setdefault(并修复其他几个错误),事情会更清楚:

def hash_sequence(s, k=3):
dictionary={}
for i in range(len(s) - k + 1):
triplet = s[i:i+k]
dictionary.setdefault(triplet,[]).append(i)
return dictionary

hash_sequence('byebyeboy')
Out[28]: {'boy': [6], 'bye': [0, 3], 'ebo': [5], 'eby': [2], 'yeb': [1, 4]}

关于python - 为什么在尝试修改字典 : "TypeError: unhashable type: ' slice' 时出现此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635432/

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