列表推导 - 从字典中的字典中提取值

Dal*_*ugh 3 python

我想从字典词典中获取一个名单列表......

list = {'1':{'name':'fred'}, '2':{'name':'john'}}

# this code works a-ok
for key, value in list.items():
    names = []
    for key, value in list.items():
        names.append(value['name'])



# and these consecutive comprehensions also work...
keys = [value for key, value in list.items()]


names = [each['name'] for each in keys]
Run Code Online (Sandbox Code Playgroud)

但最后两个如何合并?

Cor*_*mer 9

>>> d = {'1':{'name':'fred'}, '2':{'name':'john'}}
Run Code Online (Sandbox Code Playgroud)

您可以对列表推导使用以下修改

>>> [value.get('name') for key, value in d.items()]
['john', 'fred']
Run Code Online (Sandbox Code Playgroud)

虽然在这种情况下,你不需要key任何东西,所以你可以这样做

>>> [value.get('name') for value in d.values()]
['john', 'fred']
Run Code Online (Sandbox Code Playgroud)


Mar*_*nen 6

names = [value['name'] for value in list.values()]
Run Code Online (Sandbox Code Playgroud)