Python вызывает KeyError (для ключа вне словаря), даже если ключ есть в словаре - PullRequest
8 голосов
/ 29 апреля 2010

Я получаю KeyError для ключа вне словаря, хотя я знаю, что ключ фактически находится в словаре. Любые идеи относительно того, что может быть причиной этого?

print G.keys()

возвращает следующее:

['24', '25', '20', '21', '22', '23', '1', '3', '2', '5', '4', '7', '6', '9', '8', '11', '10', '13', '12', '15', '14', '17', '16', '19', '18']

но когда я пытаюсь получить доступ к значению в словаре в следующей строке кода ...

for w in G[v]:    #note that in this example, v = 17

Я получаю следующее сообщение об ошибке:

KeyError: 17

Любая помощь, советы или советы приветствуются. Спасибо.

Ответы [ 3 ]

27 голосов
/ 29 апреля 2010

Все просто, 17 != '17'

5 голосов
/ 29 апреля 2010

Ключи являются строками, вы пытаетесь получить к ним доступ как к целым.

3 голосов
/ 29 апреля 2010

попробуйте с v = '17'. Вы должны преобразовать свой int в строку

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