2015-10-19 2 views
1

Я пытаюсь получить только значение «кода» из моего словаря, но не уверен, что делаю это правильно. В идеале мой из пут должен быть только кодПолучение только определенных значений из словаря

peq = { 
'sg':{'code':9, 'perror':0}, 
'6e':{'code':17, 'perror':0}, 
'g8':{'code':25, 'perror':0}, 
'i7':{'code':33, 'perror':0}, 
'9h':{'code':41, 'perror':0}, 
'it':{'code':49, 'perror':0}, 
'ic':{'code':57, 'perror':0}, 
'9w':{'code':65, 'perror':0}, 
's2':{'code':73, 'perror':0}, 
'ai':{'code':81, 'perror':0} 
} 



for the_value['code'], in peq.iteritems(): 
    print the_value 
+0

Что вы имеете в виду вы не знаете? Это работает или нет? – Maroun

+0

'print the_value ['code']' вместо 'print the_value' –

ответ

4

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

for value in peq.itervalues(): 
    print value['code'] 

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

for key, value in peq.iteritems(): 
    print value['code'] 
+0

Спасибо @black panda –

0

Вот другой подход, который будет возвращать все «с Значения ODE»в виде списка:

map(lambda x: x['code'], peq.values()) 

Результат этого будет:

[41, 65, 17, 81, 73, 57, 9, 49, 33, 25] 

Очевидно, что вы можете перебрать, что:

for i in map(lambda x: x['code'], peq.values()): 
    print(i) 
0

Try панды, он может сделать больше, чем вы могут представить

In [16]: peq = { 
    ....: 'sg':{'code':9, 'perror':0}, 
    ....: '6e':{'code':17, 'perror':0}, 
    ....: 'g8':{'code':25, 'perror':0}, 
    ....: 'i7':{'code':33, 'perror':0}, 
    ....: '9h':{'code':41, 'perror':0}, 
    ....: 'it':{'code':49, 'perror':0}, 
    ....: 'ic':{'code':57, 'perror':0}, 
    ....: '9w':{'code':65, 'perror':0}, 
    ....: 's2':{'code':73, 'perror':0}, 
    ....: 'ai':{'code':81, 'perror':0} 
    ....: } 

In [17]: import pandas as pd 

In [18]: data = pd.DataFrame.from_dict(peq) 

In [19]: data 
Out[19]: 
     6e 9h 9w ai g8 i7 ic it s2 sg 
code 17 41 65 81 25 33 57 49 73 9 
perror 0 0 0 0 0 0 0 0 0 0 

In [20]: data.iloc[0] 
Out[20]: 
6e 17 
9h 41 
9w 65 
ai 81 
g8 25 
i7 33 
ic 57 
it 49 
s2 73 
sg  9 
Name: code, dtype: int64 

In [21]: 

некоторые интро панд

  1. [pandas intro 1]
  2. [pandas 10 minutes]
+0

@PeterWood Я предполагаю, что вопрос является суб-суб - * -подпробой реального варианта использования автора. –