Skip to main content
 首页 » 编程设计

python之一行返回包含另一个键值的列表中第一个字典中的字典键值

2025年05月04日9langtianya

我有一个字典列表:

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 并在更适合您的情况下捕获错误。