2010-07-18 4 views
0

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

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 окончательный - выход в таком виде ... {(4,5):west,(5,6):south,......so on}

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

д: 2

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

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

Ошибка: «W '

+0

что здесь OP? – Shilpa

+0

@Shilpa: Вы OP. –

+0

OP == original poster – qbi

ответ

2

работает для меня:

>>> 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, если вы не указали значение по умолчанию).


Read about dictionaries in the Python documentation.

+0

'print final [(4,5)]' дает мне и «запад». Должно быть, что-то не хватает в вопросе ОП. – Johnsyweb

+0

Awesome .... final.get ((4,5)) работает для меня ... спасибо Но у меня есть еще один вопрос, связанный с этой штукой ... Я редактирую вопрос ... plz посмотри его и скажи мне правильный способ сделать это ... еще раз .. спасибо – Shilpa

+0

@Shilpa: Пожалуйста, но, похоже, вы не указали свою проблему правильно. Сначала вы сказали: «final [(4,5)]' не дает вам «запад», но мы могли бы показать вам, что это так. Позже в комментарии вы говорите, что получаете ключевую ошибку для '(5,3)', но вы никогда не упоминали об этом в своем вопросе. Пожалуйста, уточните * о своей проблеме, мы не хотим * угадывать *. –

2

работает для меня:

>>> keys=[(4,5),(5,6)] 
>>> values = ["west","south"] 
>>> f=dict(zip(keys,values)) 
>>> f 
{(4, 5): 'west', (5, 6): 'south'} 
>>> f[(4,5)] 
'west' 
+0

KeyError: (5, 3) Это ват я получаю – Shilpa

+0

@Shilpa: Ну, тогда ключ '(5,3)', очевидно, не находится в вашем словаре. Из кода, который вы опубликовали до сих пор, кажется, что у вас есть '(a, b)', где 'a

+0

да, у него есть .... но теперь я решил проблему .. спасибо – Shilpa

Смежные вопросы