You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现列表中字典的快速查找方法

快速查找列表中指定name的字典

这里有几个实用的方法,你可以根据自己的使用场景来选:

单次查找(找第一个匹配项)

如果只是偶尔查一次,用next()生成器表达式最直接,效率也不错:

mylist = [{'name': 'Delivered-To', 'value': '123'}, {'name': 'Received', 'value': 'abc'}, {'name': 'Payload', 'value': 'xxxxxx'}]

target_name = 'Received'
# 找到第一个匹配的字典
result = next(item for item in mylist if item['name'] == target_name)
print(result)  # 输出: {'name': 'Received', 'value': 'abc'}

要是担心找不到目标name会报错,可以加个默认值(比如返回None):

result = next((item for item in mylist if item['name'] == target_name), None)

多次查找(优先推荐)

如果需要反复根据name查找,先把列表转换成以name为键的字典,之后每次查找都是O(1)的速度,效率拉满:

# 一次性转换为映射字典
name_to_item = {item['name']: item for item in mylist}
# 直接通过key获取
result = name_to_item.get('Received')
print(result)  # 输出: {'name': 'Received', 'value': 'abc'}

⚠️ 注意:如果原列表里有多个name相同的字典,后面的会覆盖前面的,这个转换只会保留最后一个匹配项。

查找所有匹配项

要是你的列表里可能存在多个相同name的字典,想要全部捞出来,用列表推导式就搞定:

target_name = 'SomeDuplicateName'
results = [item for item in mylist if item['name'] == target_name]
# results会是所有符合条件的字典组成的列表

内容的提问来源于stack exchange,提问作者Relax ZeroC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:37:28