首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中获取字典列表中给定值的字典?

如何在python中获取字典列表中给定值的字典?
EN

Stack Overflow用户
提问于 2011-07-06 10:07:40
回答 4查看 166关注 0票数 0

我有一个字典列表,例如我给出的键值是‘曾傑瑞’。

有没有办法循环到列表中,只返回键值名称为‘曾傑瑞’的字典?

代码语言:javascript
复制
lst= [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]

它应该会返回

代码语言:javascript
复制
{'name':'jerry','score':10}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-06 10:12:17

您可以使用生成器表达式获取所有合适的元素,并使用next选择第一个元素

代码语言:javascript
复制
next(d for d in lst if d['name'] == 'jerry')
票数 5
EN

Stack Overflow用户

发布于 2011-07-06 10:12:29

使用列表理解:

代码语言:javascript
复制
result = [x for x in lst if x['name'] == 'jerry'][0]

顺便说一句,如果您有许多结构相似的字典,并且不想更改它们,那么您可能想要为您的数据使用namedtuple

代码语言:javascript
复制
Person = collections.namedtuple('Person', 'name score')
lst = [Person('jerry', 10), ...]
result = [x for x in lst if x.name == 'jerry'][0] 
票数 3
EN

Stack Overflow用户

发布于 2011-07-06 10:11:34

列表理解应该是有效的:

代码语言:javascript
复制
lst = [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]
print([d for d in lst if d['name'] == 'jerry'][0])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6590834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档