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

嵌套列表条件筛选问题:如何正确提取不含-1的子列表?

嵌套列表筛选问题解决办法

给定嵌套列表:

list1 = [[0, 3], [1, 2], [2, -1], [3, -1], [4, -1], [5, -1], [6, -1], [7, -1]]

需要筛选出所有元素均不为-1的子列表,最终得到:

list2 = [[0, 3], [1, 2]]

原代码问题分析

你写的双层循环逻辑错误:

  • 遍历子列表的每个元素时,只要有一个元素不等于-1就将整个子列表添加到list2,导致符合条件的子列表被重复添加(比如[0,3]会被添加两次)。
  • 包含-1的子列表(如[2,-1]),只要有一个元素不是-1也会被错误添加,完全不符合筛选需求。

正确实现方式

方式1:列表推导式(推荐)

直接通过条件判断筛选子列表,这是最简洁的实现:

list1 = [[0, 3], [1, 2], [2, -1], [3, -1], [4, -1], [5, -1], [6, -1], [7, -1]]
list2 = [sublist for sublist in list1 if -1 not in sublist]

方式2:修正后的普通循环

如果需要用循环实现,只需遍历每个子列表并做一次判断即可:

list1 = [[0, 3], [1, 2], [2, -1], [3, -1], [4, -1], [5, -1], [6, -1], [7, -1]]
list2 = []
for sublist in list1:
    if -1 not in sublist:
        list2.append(sublist)

验证结果

执行上述任意代码后,list2的输出均为:

[[0, 3], [1, 2]]

完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:48:16