Доступ к словарю списков в Python - PullRequest
0 голосов
/ 12 сентября 2018

Вот мой код 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.

1 Ответ

0 голосов
/ 12 сентября 2018

Для вашей цели вы должны предоставить 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)

Приведенный выше код решает проблему.

Вы также можете сделать dict[P] += 1 при условии, что P является кортежем и существует key формы Pв словаре.Если ключ не существует, он выдаст ошибку.Поэтому, чтобы быть в безопасности, я рекомендую опубликованный мной код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...