Python访问字典列表中的字典

时间:2017-08-09 13:35:04

标签: python list dictionary

嗨我有下面的字典,其中有一个列表值,列表中有一个字典。有没有办法使用键而不是列表索引调用列表中的字典值?列表中的字典可能会有所不同,因此索引值可能并不总是提供正确的键值对。但如果我能够使用密钥,我总能得到正确的值。

mylist = {'mydict': [{'A': 'Letter A'}, {'B': 'Letter C'}, {'C': 'Letter C'}]}
print(mylist['mydict'][0]['A'])

当前输出:

Letter A

所需查询:

print(mylist['mydict']['A'])
Letter A

5 个答案:

答案 0 :(得分:7)

目前,字典中的列表中有3个字典。请尝试以下代码:

my_nested_dictionary = {'mydict': {'A': 'Letter A', 'B': 'Letter C', 'C': 'Letter C'}}
print(my_nested_dictionary['mydict']['A'])

答案 1 :(得分:2)

看看下面的代码:

>>> mylist = {'mydict': [{'A': 'Letter A'}, {'B': 'Letter C'}, {'C': 'Letter C'}]}
>>> for dictionary in mylist['mydict']:
...  try:
...   dictionary['A']
...  except KeyError:
...   pass
... 
'Letter A'

您遍历列表中的字典,然后尝试调用A密钥。您捕获KeyError因为在字典中密钥可能不存在。

答案 2 :(得分:2)

尝试使用以下代码生成新的dict。

import {HttpClient, HttpHeaders} from '@angular/common/http';

答案 3 :(得分:1)

使用发电机怎么样?

item = next(item['A'] for item in mylist['mydict'] if 'A' in item)

答案 4 :(得分:0)

只有在原始数据格式为:

时才可以
mylist = {'mydict': {'A': 'Letter A','B': 'Letter C','C': 'Letter C'}}

所以没有嵌入列表 - 这似乎没有添加有意义的结构?