Python在if语句之后的字典列表中获取dictionary元素

2024-10-06 11:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如何根据满足某个条件的字典在字典列表中获取字典值?例如,如果列表中的某个字典的id=5,我想打印对应于该字典的name键的值:

list = [{'name': 'Mike', 'id': 1}, {'name': 'Ellen', 'id': 5}]
id = 5
if any(m['id'] == id for m in list):
    print m['name']

这行不通,因为m没有在if语句之外定义。在


Tags: nameinid列表forif字典定义
3条回答

这将很容易通过一个for循环来完成:

for d in list:
    if 'id' in d and d['in'] == 5:
        print(d['name'])

这里有两个关键概念需要学习。第一种方法是使用for loop来“遍历列表中的每个元素”。第二,我们使用in词来检查字典是否有特定的键。在

new_list = [m['name'] for m in list if m['id']==5]
print '\n'.join(new_list)

您有一个字典列表,因此可以使用列表理解:

[d for d in lst if d['id'] == 5]

# [{'id': 5, 'name': 'Ellen'}]

相关问题 更多 >