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

Python遍历嵌套列表筛选元素并保留原有嵌套结构的实现方法

实现方案

使用嵌套列表推导式即可在保留原有嵌套结构的前提下完成筛选,写法非常简洁:

names = [['Matt', 'Matt', 'Paul'], ['Matt']]
matts = [[name for name in sublist if name == "Matt"] for sublist in names]

执行后输出结果完全符合预期:[['Matt', 'Matt'], ['Matt']]。

原理解释

你之前写的扁平列表推导式把两层循环放在了同一层级,所有符合条件的元素都会直接插入最外层列表,导致结构被拍平。而嵌套推导式的逻辑和你手写的循环完全等价:

  • 外层遍历原始列表的每一个子列表
  • 内层对每个子列表单独做过滤,生成新的子列表后再插入最终结果

因此可以完美保留原来的嵌套层级结构,不需要手动写append逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:04