繁体   English   中英

如何从字典列表中通过字典值y获取字典值x

[英]How to get dict value x via dict value y from list of dicts

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

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

我想按名称获取给定名称的名称。 以下作品。

names = ['Monty', 'Terry']

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

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

这里 ,我知道我可以做到这一点:

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

但是,如果dictlist没有按名称排序,那才更好。

所以我想知道是否没有更简洁的方法,最好是至少与第一种方法一样易读的方法?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM