Skip to main content
 首页 » 编程设计

python之如何通过字典列表中的字典值 y 获取字典值 x

2025年05月04日22sky-heaven

(Python 2.x)只有唯一键值对的字典列表,按名称字母顺序排序,名称也是唯一的:

dictlist = [ 
    {'name': 'Monty', 'has': 'eggs'}, 
    {'name': 'Terry', 'has': 'bacon'}     
    ] 

我想通过名称获取给定名称的内容。以下作品。

names = ['Monty', 'Terry'] 
 
print dictlist[names.index('Terry')]['has'] 

我已经制作了一个平行列表,其名称的顺序与 dictlist 中的名称顺序相同,因此我可以利用列表的顺序。 (我可以用 for 循环填充 names,但这与这里无关)。

来自 here ,除其他外,我知道我可以做到这一点:

print next((d['has'] for d in dictlist if d['name'] == 'Terry'), None)  

但只有当 dictlist 不按名称排序时才会更好。

所以我想知道是否有更简洁的方法来执行此操作,最好是至少与第一种方法一样可读的方法?

请您参考如下方法:

我根本不会使用列表。我会改用字典。

dictlist = { 
    'Monty': {'has': 'eggs'}, 
    'Terry': {'has': 'bacon'}     
    } 

这允许您按名称查找值,如下所示:dictlist['Monty']['has']

如果您必须使用列表,那么我认为您有一个很好的解决方案。