Python访问字典列表中的值

use*_*686 9 python dictionary list

假设我有一个字典列表,其中包含名称和年龄以及其他信息,如下所示:

thisismylist= [  
              {'Name': 'Albert' , 'Age': 16},
              {'Name': 'Suzy', 'Age': 17},
              {'Name': 'Johnny', 'Age': 13}
]
Run Code Online (Sandbox Code Playgroud)

我将如何使用for循环打印以下内容:

Albert
Suzy
Johnny
Run Code Online (Sandbox Code Playgroud)

我只是无法围绕这个想法...

use*_*509 15

如果您只是在寻找与"名称"相关联的值,那么您的代码应如下所示:

for d in thisismylist:
    print d['Name']
Run Code Online (Sandbox Code Playgroud)


Hen*_*ter 8

看起来你需要查看Python流控制文档.基本上,您只需遍历列表中的所有项目,然后对于每个项目(在本例中为字典),您可以访问所需的任何值.例如,下面的代码将打印出列表中每个字典中的每个值.

for d in my_list:
    for key in d:
        print d[key]
Run Code Online (Sandbox Code Playgroud)

请注意,这不会打印键,只会打印值.要打印密钥,请进行打印声明print key, d[key].那简单!

但实际上,请阅读流量控制文档; 这是很不错的.


daw*_*awg 8

如果您需要这些值的列表:

>>> [d['Name'] for d in thisismylist]
['Albert', 'Suzy', 'Johnny']
Run Code Online (Sandbox Code Playgroud)

同样的方法,你可以得到一个数据元组:

>>> [(d['Name'],d['Age']) for d in thisismylist]
[('Albert', 16), ('Suzy', 17), ('Johnny', 13)]
Run Code Online (Sandbox Code Playgroud)

或者,将dicts列表转换为单个键值对字典:

>>> {d['Name']:d['Age'] for d in thisismylist}
{'Johnny': 13, 'Albert': 16, 'Suzy': 17}
Run Code Online (Sandbox Code Playgroud)

所以,同样的方法,打印它们的方法:

>>> print '\n'.join(d['Name'] for d in thisismylist)
Albert
Suzy
Johnny   
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以打印出来:

>>> print '\n'.join(sorted(d['Name'] for d in thisismylist))
Albert
Johnny
Suzy
Run Code Online (Sandbox Code Playgroud)

或者,在展平列表时按年龄排序:

>>> for name, age in sorted([(d['Name'],d['Age']) for d in thisismylist],key=lambda t:t[1]):
...    print '{}: {}'.format(name,age)
... 
Johnny: 13
Albert: 16
Suzy: 17
Run Code Online (Sandbox Code Playgroud)


小智 5

以下代码应该可以完美运行。

for var in thisismylist:
  print var['Name']
Run Code Online (Sandbox Code Playgroud)