Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python访问字典列表中的值_Python_List_Dictionary - Fatal编程技术网

Python访问字典列表中的值

Python访问字典列表中的值,python,list,dictionary,Python,List,Dictionary,假设我有一个包含姓名、年龄和其他信息的词典列表,如下所示: thisismylist= [ {'Name': 'Albert' , 'Age': 16}, {'Name': 'Suzy', 'Age': 17}, {'Name': 'Johnny', 'Age': 13} ] 如何使用for循环打印以下内容: Albert Suzy Johnny 我就是想不起这个主意……看来你需要仔细考虑一下。基本上,您

假设我有一个包含姓名、年龄和其他信息的词典列表,如下所示:

thisismylist= [  
              {'Name': 'Albert' , 'Age': 16},
              {'Name': 'Suzy', 'Age': 17},
              {'Name': 'Johnny', 'Age': 13}
]
如何使用for循环打印以下内容:

Albert
Suzy
Johnny

我就是想不起这个主意……

看来你需要仔细考虑一下。基本上,您只需循环列表中的所有项目,然后对于每个项目(本例中为字典),您可以访问您想要的任何值。例如,下面的代码将打印出列表中每个字典中的每个值

for d in my_list:
    for key in d:
        print d[key]
请注意,这不会打印键,只打印值。要同时打印按键,请制作打印语句
print key,d[key]
。那容易


但实际上,去阅读流量控制文档;非常好。

如果只是查找与“Name”关联的值,那么代码应该如下所示:

for d in thisismylist:
    print d['Name']

您可以从列表中的每个元素中投影
Name
属性,并使用换行符连接结果:

>>> print '\n'.join(x['Name'] for x in thisismylist)
Albert
Suzy
Johnny
编辑

这花了我几分钟,但我记得另一种有趣的方法。您也可以使用和模块的组合来执行此操作。你可以


在任何情况下,您最好使用一个普通的
for
循环,但我认为其他一些选项是合适的。

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

>>> [d['Name'] for d in thisismylist]
['Albert', 'Suzy', 'Johnny']
同样的方法,您可以获得数据的元组:

>>> [(d['Name'],d['Age']) for d in thisismylist]
[('Albert', 16), ('Suzy', 17), ('Johnny', 13)]
或者,将dict列表转换为单个键、值对字典:

>>> {d['Name']:d['Age'] for d in thisismylist}
{'Johnny': 13, 'Albert': 16, 'Suzy': 17}
所以,同样的方法,一种打印它们的方法:

>>> print '\n'.join(d['Name'] for d in thisismylist)
Albert
Suzy
Johnny   
如果愿意,您可以按顺序打印:

>>> print '\n'.join(sorted(d['Name'] for d in thisismylist))
Albert
Johnny
Suzy
或者,在展平列表的同时按年龄排序:

>>> 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

在不导入库的情况下执行此操作的简捷方法:

print('\n'.join([e["Name"] for e in thisismylist]))

下面的代码应该可以完美地工作

for var in thisismylist:
  print var['Name']

你的答案有什么不同?
for var in thisismylist:
  print var['Name']