在python中访问列表字典
以下是我的Python代码:在python中访问列表字典,python,dictionary,Python,Dictionary,以下是我的Python代码: import random import itertools per=itertools.permutations([1, 2, 3]) dict={} for i in per: dict[i]=0 P=[2,1,3] dict[P]=dict[P]+1 print(dict) 它给出了一个错误的说法 TypeError: unhashable type: 'list' in line dict[P]=dict[P]+1 我如何纠正这个问题 我希
import random
import itertools
per=itertools.permutations([1, 2, 3])
dict={}
for i in per:
dict[i]=0
P=[2,1,3]
dict[P]=dict[P]+1
print(dict)
它给出了一个错误的说法
TypeError: unhashable type: 'list' in line dict[P]=dict[P]+1
我如何纠正这个问题
我希望将键
[2,1,3]
的值增加1。出于您的目的,您必须以元组形式提供p
。稍后,您可以在关键点之间循环,并根据需要检查关键点和增量
import random
import itertools
per=itertools.permutations([1, 2, 3])
dict={}
for i in per:
dict[i]=0
P=(2,1,3)
for key in dict.keys():
if key == P:
dict[key] += 1
print(dict)
上面的代码处理这个问题
如果
p
是一个元组,并且字典中存在p
形式的键,则也可以执行dict[p]+=1
。如果密钥不存在,它将抛出一个错误。因此,为了安全起见,我推荐我发布的代码。您希望得到什么?我希望将与键“[2,1,3]”相关的值增加1您不能使用可变对象作为dict的键。请使用元组而不是列表。列表不能指定为dict键,请尝试使用元组。将p转换为元组成功!谢谢保罗和维卡斯。