2013-04-10 2 views
0

Может ли кто-нибудь помочь указать, как получить первое значение для каждого ключа в стандартном словарях/словарях?Python - возвращает первое значение для каждой клавиши

Например, у меня есть это менее элегантное решение:

d = {'4089e04a': ['24.0', '24.0', '24.0', '23.93', '23.93 
', '23.93'], '408b2e00': ['20.91', '33.33'], '408b2e0c': ['44.44']} 

print d.values()[0][0] 
print d.values()[1][0] 
print d.values()[2][0] 

Это делает работу - но есть лучший способ, так что я не ограничивается только возвращение 3 значения? Я не могу работать, как заставить его работать в указании каждого ключа в отдельности ...

Благодаря

ответ

4

Попробуйте

>>> d = {'4089e04a': ['24.0', '24.0', '24.0', '23.93', '23.93',\ 
'23.93'], '408b2e00': ['20.91', '33.33'], '408b2e0c': ['44.44']} 
>>> [item[0] for item in d.values()] 
['24.0', '20.91', '44.44'] 

Надеется, что это помогает!

+0

Dang - Я знал, что было бы глупо легко ... нужно больше кофе. Ура! – Ollie

+0

Или отдохните, прежде чем продолжить код. – Sheng

1

d.values() возвращает list (Py 2x) или views (py3x), вы можете перебирать через это каждый элемент и просто распечатать item[0]

In [165]: d = {'4089e04a': ['24.0', '24.0', '24.0', '23.93', '23.93', '23.93'], '408b2e00': ['20.91', '33.33'], '408b2e0c': ['44.44']} 

In [167]: for item in d.values(): 
    .....:  print item[0] 
    .....:  
24.0 
20.91 
44.44 
+0

тип (d.values ​​()) показывает, что это не список. – Sheng

+0

@ Шенг, вы должны использовать py3x. –

+0

О ~ Да. Понял. – Sheng

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