简体   繁体   English

Python:获取复杂字典值的最佳方法

[英]Python: The best way to get complex dictionary values

I've a dictionary in following format 我有以下格式的字典

{'array': [[{u'unsigned': 15.0}], [{u'octet-string': 12.0}], [{u'octet-string': 12.0}], [{u'octet-string': 12.0}], [{u'octet-string': 45.0}], [{u'octet-string': 78.0}], [{u'octet-string': 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}]]} {'array':[[{u'unsigned':15.0}],[{u'octet-string':12.0}],[{u'octet-string':12.0}],[{u'octet-string ':12.0}],[{u'octet-string':45.0}],[{uuoctet-string':78.0}],[{uuoctet-string':89.0}],[{u'octet -string':65.0}],[{u'octet-string':352.0}],[{uuoctet-string':45.0}],[{u'octet-string':12.0}],[{u '八位位组字符串:45.0}],[{u'八位位组字符串:78.0}],[{u'八位位组字符串:98.0}],[{u'八位位组字符串:352.0}],[ {u'octet-string':56.0}],[{uuoctet-string':89.0}],[{uuoctet-string':78.0}],[{uuoctet-string':45.0}] ,[{u'octet-string':12.0}],[{uuoctet-string':23.0}],[{uuoctet-string':65.0}],[{u'octet-string':65.0 }],[{u'octet-string':45.0}],[{uuoctet-string':78.0}],[{uuoctet-string':899.0}],[{uuoctet-string' :8989.0}],[{u'octet-string':6565.0}],[{u'octet-string':323.0}],[{u'octet-string':1211.0}]]]}

what is the most effective way to get values of [15.0,12.0,12.0,12.0,45.0,,,,etc] 什么是获取[15.0,12.0,12.0,12.0,45.0,...等值]的最有效方法

This is making all kinds of assumptions about the data you're dealing with, but in the example you give you could do this: 这是对要处理的数据的各种假设,但是在示例中,您可以执行以下操作:

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

... where d is your dictionary as above. ...其中d是如上所述的字典。 That evaluates to: 评估结果为:

[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]
[elem[0].values()[0] for elem in yourDict['array']]

If you have a dictionary d , you can use d.values() to get all the values in the dictionary. 如果您有字典d ,则可以使用d.values()获取字典中的所有值。 For example: 例如:

d = {'a': 1.0, 'b': 2.0}
print(d.values())   # [1.0, 2.0]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM