проблема в словаре питона - PullRequest
0 голосов
/ 18 июля 2010

Я создал словарь, затем разделил значения и ключи на списки, и теперь он выглядит следующим образом:

keys = [(4,5),(5,6),(4,8)......so on].
values = [('west',1),('south',1).......]

Затем я создал новый словарь, например,

final = dict((k,v[0]) for k,v in zip(keys, values))

Когда я выполняю -print final - вывод находится в этой форме ... {(4,5):west,(5,6):south,......so on}

Теперь мне нужно иметь значение ключа (4,5) ... это может быть любой ключ..

q: 2

win = gap.pop() - here gap is a stack
         print win      - the output is (1,1)
         return final.get(win) -

но когда я делаю это возвращение, я получаю ошибку, а final - это каталог, который я создал со списками ключей и значений

Ошибка: 'W'

Ответы [ 2 ]

2 голосов
/ 18 июля 2010

у меня работает:

>>> final = {(4,5):"West", (5,6): "East"}
>>> print final
{(4, 5): 'West', (5, 6): 'East'}
>>> final[(4,5)]
'West'

Возможно, вы захотите попробовать final.get((4,5)).

Или отправьте больше кода, может быть, вы делаете что-то необычное с final. Если вы не вернете значение, вы должны как минимум получить KeyError:

>>> final[(7,8)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: (7, 8)

В этом случае вы должны обработать исключение:

try:
    final[(7,8)]
except KeyError:
    print "Key not in dict."

или используйте final.get((7,8), <default value>), который вернет <default value>, если ключ не найден (или None, если не указано значение по умолчанию).


Читайте о словарях в документации по Python .

2 голосов
/ 18 июля 2010

у меня работает:

>>> keys=[(4,5),(5,6)]
>>> values = ["west","south"]
>>> f=dict(zip(keys,values))
>>> f
{(4, 5): 'west', (5, 6): 'south'}
>>> f[(4,5)]
'west'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...