从同一键访问嵌套字典中不同词典的所有值

时间:2019-10-03 03:25:38

标签: python dictionary

我有一个嵌套的字典:

d = { 'wing': {'name': 'Ali', 'age': '19'}, 
    'scrumHalf': {'name': 'Bob', 'age': '25'},
    'flyHalf': {'name': 'Sam', 'age': '43'},
    'prop': {'name': 'rob', 'age': '33'}}

我只想提取age的值以生成列表 [19, 25, 43, 33]

我想使用for循环来做到这一点,并且要尽可能天真,因为我通常认为这是最容易理解的。

我设法使用for循环打印了所有键:

for i in d:
    print i
    for j in d[i]:
        print j

但是当我尝试编辑它以打印值时,出现错误 NameError: name 'value' is not defined。如何获得'value'来表示键的值?

这是我的编辑版本

for i in d:
    print (i[value])
    for j in d[i]:
        print (j[value])

我正在使用python 2.7

2 个答案:

答案 0 :(得分:1)

您可以借助values()方法来访问字典中的值:

[i['age'] for i in d.values()]
# ['19', '25', '43', '33']

答案 1 :(得分:0)

>>> [d.get(k).get('age') for k, v in d.items()]
['33', '25', '19', '43']

要访问字典的值,您首先要通过正确的键(即for i in d:)进行迭代。因此,为了访问d中键i的值,您需要执行d[i],该操作会为您提供值,例如{'name': 'rob', 'age': '33'},然后才能访问所需的键。我将不得不再次从字典访问d[i]['age']