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

Python筛选长度为4的嵌套子列表索引时返回错误结果

代码错误原因

你写的判断逻辑存在两处根本性错误,才会出现不符合预期的输出:

  • 列表推导式[x for x in list_of_lists if len(x) == 4]的作用是遍历整个嵌套列表,把所有长度为4的子列表收集成一个新的独立列表,根本不是用来判断当前遍历项的长度。
  • 后续的in j判断逻辑完全写反:你实际在判断「所有长度为4的子列表组成的新列表,是不是当前遍历到的子列表j的内部元素」,而非判断当前子列表j本身长度是否为4。

举个对应你遇到异常的场景:如果嵌套列表里存在一个长度为1的子列表,它唯一的元素刚好是前面列表推导生成的、收集了所有长度为4子列表的那个列表,这个判断就会返回True,对应的索引就会被错误打印出来,这就是你看到的额外输出的来源。

修正后的实现

你只需要直接判断当前遍历到的子列表长度即可,不需要额外嵌套列表推导:

for i, sub_list in enumerate(list_of_lists):
    if len(sub_list) == 4:
        print(i)

如果需要一次性收集所有符合要求的索引,可以直接用列表推导式实现:

target_indexes = [idx for idx, sub_list in enumerate(list_of_lists) if len(sub_list) == 4]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:54:12