Python: лучший способ получить сложные значения словаря - PullRequest
0 голосов
/ 14 марта 2011

У меня есть словарь в следующем формате

{'array': [[{u'unsigned ': 15.0}], [{u'octet-string': 12.0}], [{u'octet-string ': 12.0}], [{u' строка октетов ': 12.0}], [{строка uoctet: 45.0}], [{строка uoctet: 78.0}], [{строка uoctet: 89.0}], [{ u'octet-string ': 65.0}], [{u'octet-string': 352.0}], [{u'octet-string ': 45.0}], [{u'octet-string': 12.0}], [{u'octet-string ': 45.0}], [{u'octet-string': 78.0}], [{u'octet-string ': 98.0}], [{u'octet-string': 352.0} ], [{u'octet-string ': 56.0}], [{u'octet-string': 89.0}], [{u'octet-string ': 78.0}], [{u'octet-string': 45.0}], [{u'octet-string ': 12.0}], [{u'octet-string': 23.0}], [{u'octet-string ': 65.0}], [{u'octet-string ': 65.0}], [{u'octet-string': 45.0}], [{u'octet-string ': 78.0}], [{u'octet-string': 899.0}], [{u'octet -string ': 8989.0}], [{u'octet-string': 6565.0}], [{u'octet-string ': 323.0}], [{u'octet-string': 1211.0}]]}

Какой самый эффективный способ получить значения [15.0,12.0,12.0,12.0,45.0 ,,,, и т. Д.]

Ответы [ 3 ]

4 голосов
/ 14 марта 2011

Это делает всевозможные предположения относительно данных, с которыми вы имеете дело, но в приведенном вами примере вы можете сделать это:

[ a[0].values()[0] for a in d['array'] ]

... где d ваш словарь, как указано выше. Это оценивает:

[15.0, 12.0, 12.0, 12.0, 45.0, 78.0, 89.0, 65.0, 352.0,
 45.0, 12.0, 45.0, 78.0, 98.0, 352.0, 56.0, 89.0, 78.0,
 45.0, 12.0, 23.0, 65.0, 65.0, 45.0, 78.0, 899.0, 8989.0,
 6565.0, 323.0, 1211.0]
0 голосов
/ 14 марта 2011

Если у вас есть словарь d, вы можете использовать d.values(), чтобы получить все значения в словаре. Например:

d = {'a': 1.0, 'b': 2.0}
print(d.values())   # [1.0, 2.0]
0 голосов
/ 14 марта 2011
[elem[0].values()[0] for elem in yourDict['array']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...