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

Python实现嵌套列表指定元素移至目标列表并统计数量

嵌套列表元素迁移与统计实现

需求说明

给定一个嵌套列表,部分子列表里的元素以[x]开头,需要完成以下操作:

  • 把这些带[x]前缀的元素从原属子列表中移除
  • 去掉元素的[x]前缀后,添加到列表的最后一个子列表(固定索引为2)
  • 统计并输出每个子列表中被移除的元素数量

示例展示

初始列表:

list1 = [['[x]homework', '[x]eat','stretch'], ['[x]final', 'school'], ['sleep','midterm']]

处理后列表:

list1 = [['stretch'], ['school'], ['sleep','midterm', 'homework', 'eat', 'final']]

预期控制台输出:

2 removed from 1st list
1 removed from 2nd list

实现代码

def process_nested_list(lst):
    # 遍历前两个子列表(最后一个是目标列表,无需处理)
    for idx, sublist in enumerate(lst[:-1], start=1):
        removed_count = 0
        # 反向遍历子列表,避免删除元素时索引错位
        for i in range(len(sublist)-1, -1, -1):
            item = sublist[i]
            if item.startswith('[x]'):
                # 去掉[x]前缀后添加到最后一个子列表
                lst[-1].append(item[3:])
                # 从原子列表移除当前元素
                del sublist[i]
                removed_count += 1
        # 输出统计结果
        ordinal = "1st" if idx == 1 else "2nd"
        print(f"{removed_count} removed from {ordinal} list")

# 测试示例
list1 = [['[x]homework', '[x]eat','stretch'], ['[x]final', 'school'], ['sleep','midterm']]
process_nested_list(list1)
print("\n处理后的列表:")
print(list1)

代码说明

  1. 遍历范围控制:只处理前两个子列表,最后一个子列表作为目标容器,不需要检查移除元素
  2. 反向遍历删除:正向删除元素会导致后续元素索引偏移,反向遍历可以避免这个问题,确保每个元素都能被正确检查
  3. 前缀处理:通过item[3:]截取[x]之后的内容([x]共3个字符),直接添加到最后一个子列表
  4. 统计输出:用enumerate从1开始计数,根据序号输出对应的序数词(1st/2nd),符合示例格式

内容的提问来源于stack exchange,提问作者Silly Little Baka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:55:22