我有一个字典列表:
DDD=[
{'name': 'dog', 'port': 2020, 'id': 123},
{'name': 'cat', 'port': 4242, 'id': 456},
{'name': 'mouse', 'port': 3333, 'id': 789}
]
我正在寻找一个单行 python 命令来获取字典的 'port' 值,其中 'name' 值为 'mouse' 。
我意识到在实践中可能有多个值,只需要第一个值。 (我知道它们是独一无二的)
类似于:
d['port'] for d in DDD if d['name'] is 'mouse'
我很高兴它是一个列表,并使用 [0] 获取第一个。
请您参考如下方法:
对OP自己的解决方案做一个小的改进
next((d['port'] for d in DDD if d['name']=='mouse'), None)
这个生成器解决方案的优点是可以对列表理解进行短路。 None 是默认值,如果它没有找到任何东西而不是引发错误,否则您可以简单地在 try/中单独运行 next except 并在更适合您的情况下捕获错误。
