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

如何在Python中筛选id含'def'前缀的字典列表元素?

筛选Python字典列表中含特定前缀的id元素

没问题!要实现你想要的筛选需求,用Python的列表推导式就能轻松搞定,这是处理这类场景最简洁高效的方法之一。

实现代码

# 你的原始字典列表
a = [
    {'id':'abc23','name':'aa','age':'22', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}},
    {'id':'abc25','name':'bb','age':'32', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}},
    {'id':'abc60','name':'cc','age':'24', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}},
    {'id':'def23','name':'aa','age':'22', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}},
    {'id':'def25','name':'bb','age':'32', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}},
    {'id':'def60','name':'cc','age':'24', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}}
]

# 筛选id以'def'为前缀的字典元素
filtered_result = [item for item in a if item['id'].startswith('def')]

# 打印结果
print(filtered_result)

代码说明

  • 列表推导式[item for item in a if ...]会遍历原列表a中的每一个字典元素item
  • item['id'].startswith('def')是核心判断条件:检查当前字典的id字段是否以'def'开头,这个方法专门用于字符串前缀匹配,简单直接
  • 所有满足条件的字典会被收集到filtered_result列表中,最终输出就是你期望的结果

运行这段代码后,输出完全符合你的要求:

[{'id':'def23','name':'aa','age':'22', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}}, {'id':'def25','name':'bb','age':'32', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}}, {'id':'def60','name':'cc','age':'24', 'data':{'read':'','speak':''}, 'responses':{'a':1,'b':2}}]

如果之后你需要匹配更复杂的前缀规则(比如带通配符),也可以用正则表达式结合re.match()来实现,但针对当前的需求,startswith()已经足够高效和清晰了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:09:05