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

Python列表操作:如何提取'1'之间的元素生成嵌套子列表?

Python列表按分隔符'1'提取嵌套子列表的实现方法

输入列表:

input_list = ['1', 'A', 'B', 'C', '1', 'D', '1', 'E', 'F', '1', 'G', 'H', 'I']

期望输出:

[['A', 'B', 'C'], ['D'], ['E', 'F'], ['G', 'H', 'I']]

下面是几种实用的实现方式:

方法一:基础循环遍历(通用且易理解)

通过遍历列表,用临时列表收集'1'之间的元素,遇到'1'时将临时列表存入结果,最后处理剩余元素:

input_list = ['1', 'A', 'B', 'C', '1', 'D', '1', 'E', 'F', '1', 'G', 'H', 'I']
result = []
current_sublist = []

for item in input_list:
    if item == '1':
        if current_sublist:
            result.append(current_sublist)
            current_sublist = []
    else:
        current_sublist.append(item)
# 处理最后一组未被触发的元素
if current_sublist:
    result.append(current_sublist)

print(result)

方法二:使用itertools.groupby(简洁高效)

利用groupby按元素是否为'1'分组,直接过滤掉分隔符组,将剩余组转为子列表:

from itertools import groupby

input_list = ['1', 'A', 'B', 'C', '1', 'D', '1', 'E', 'F', '1', 'G', 'H', 'I']
result = [list(group) for key, group in groupby(input_list, lambda x: x == '1') if not key]

print(result)

方法三:字符串分割法(仅适用于单字符元素场景)

如果列表中所有元素都是单个字符,可以先拼接成字符串再分割,最后转成子列表:

input_list = ['1', 'A', 'B', 'C', '1', 'D', '1', 'E', 'F', '1', 'G', 'H', 'I']
result = [list(s) for s in ''.join(input_list).split('1') if s]

print(result)

注意事项

  • 方法一和方法二适用于任意类型的元素(只要能判断等于'1'),通用性强;
  • 方法三只适用于元素为单个字符的场景,若元素是多字符字符串会失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:43:16