Python字典:使用元组作为键,获取错误“unhashale type:list”

2024-03-29 08:03:42 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我使用了一个字典,其中键是两个整数的集合,每个键的值是一个整数,定义如下:

for line in f:
    l = line.split(':')
    m = float(l[0])
    c = float(l[1])
    lines[m] = [c]
    lineIndices[(m,c)] = i
    i += 1

所以,m和c是关键元组,i是元组的值。你知道吗

当我尝试使用m&c检索“I”的值时,出现了一个错误。你知道吗

def getIndex(m):
    c = lines[m]
    i = lineIndices.get((m,c))

错误:

TypeError: unhashable type: 'list'

我不明白为什么会这样,因为我使用的是元组,而不是列表。此外,错误仅在尝试通过键获取值时发生,而不是在定义值时发生。有什么想法吗?你知道吗


Tags: infor字典定义def错误line整数
1条回答
网友
1楼 · 发布于 2024-03-29 08:03:42

以下是您引用的代码中的一些行:

lines[m] = [c]

这会将一个只包含浮点数的列表c分配给lines[m]

c = lines[m]

这会将该列表分配给c。这两步就像

c = [ c ]

现在,在

i = lineIndices.get((m,c))

键的一部分现在是单个元素列表。但是列表是不可修改的,因此出现了错误。你知道吗

大概第一个任务应该是

lines[m] = c

相关问题 更多 >