gpt4 book ai didi

python - 尝试制作列表字典时如何修复错误 "unhashable type: ' list'"?

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:29 24 4
gpt4 key购买 nike

我正在尝试制作列表字典。我使用的输入看起来像这样:

4
1: 25
2: 20 25 28
3: 27 32 37
4: 22

其中 4 是将以该格式输出的行数。我做的第一件事是删除“#:”格式并简单地保留每一行,如下所示:

['25']
['20','25','28']
['27','32','37']
['22']

所以最终的目标是获取这些值并将它们放入字典中,字典中为它们指定的值是它们包含的数字的长度。

所以我希望字典看起来像这样:

['25'] : 1
['20','25','28'] : 3
['27','32','37'] : 3
['22'] : 1

但是,当我尝试编写程序时,出现错误:

TypeError: unhashable type: 'list'

这是我的代码:

def findPairs(people):
pairs = {}
for person in range(people):
data = raw_input()

#Remove the "#: " in each line and format numbers into ['1','2','3']
data = (data[len(str(person))+2:]).split()
options = len(data)

pairs.update({data:options})

print(pairs)
findPairs(input())

有谁知道我该如何解决这个问题并创建我的字典?

最佳答案

列表是可变的,因此无法进行哈希处理(如果列表在用作键后发生更改会怎样)?

使用tuples这是immutable相反:

d = dict()
lst = [1,2,3]
d[tuple(lst)] = "some value"
print d[tuple(lst)] # prints "some value"

关于python - 尝试制作列表字典时如何修复错误 "unhashable type: ' list'"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652696/

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