在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 我如何纠正这个问题 我希

以下是我的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
我如何纠正这个问题


我希望将键
[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转换为元组成功!谢谢保罗和维卡斯。