我有一个字典列表,例如我给出的键值是‘曾傑瑞’。
有没有办法循环到列表中,只返回键值名称为‘曾傑瑞’的字典?
lst= [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]它应该会返回
{'name':'jerry','score':10}发布于 2011-07-06 10:12:17
您可以使用生成器表达式获取所有合适的元素,并使用next选择第一个元素
next(d for d in lst if d['name'] == 'jerry')发布于 2011-07-06 10:12:29
使用列表理解:
result = [x for x in lst if x['name'] == 'jerry'][0]顺便说一句,如果您有许多结构相似的字典,并且不想更改它们,那么您可能想要为您的数据使用namedtuple:
Person = collections.namedtuple('Person', 'name score')
lst = [Person('jerry', 10), ...]
result = [x for x in lst if x.name == 'jerry'][0] 发布于 2011-07-06 10:11:34
列表理解应该是有效的:
lst = [{'name':'tom','score':5},{'name':'jerry','score':10},{'name':'jason','score':8}]
print([d for d in lst if d['name'] == 'jerry'][0])https://stackoverflow.com/questions/6590834
复制相似问题