在dicts列表中查找值

时间:2018-05-05 09:39:50

标签: python list dictionary

让:

M = [{'name': 'john', 'result': 12}, 
     {'name': 'sara', 'result': 20}, 
     {'name': 'karl', 'result': 11}]

如果我想找到Sara的结果,我想到了:

 M[[m['name'] for m in M].index('sara')]['result']     # hard to read, but works

[m['result'] for m in M if m['name'] == 'sara'][0]     # better

在Python中有更自然的方法吗?

2 个答案:

答案 0 :(得分:3)

使用<a href='javascript:void(0)' id='".$rows['id']."' class='apply'>click me</a> 生成器。

next()

答案 1 :(得分:3)

如果要执行多次查找,线性搜索并不是最佳选择。

使用正确的密钥(名称)重建字典一次:

M = [{'name': 'john', 'result': 12},
     {'name': 'sara', 'result': 20},
     {'name': 'karl', 'result': 11}]

newdict = {d["name"] : d["result"] for d in M}

它创建:

{'john': 12, 'karl': 11, 'sara': 20}

现在当您需要名称的结果时,只需执行:

print(newdict.get('sara'))