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

如何将含分隔0的正数链列表拆分至多个独立子列表?

拆分以0分隔的正数链为独立子列表

我正在处理一个大型数据列表,示例如下:

List=[1,2,3,0,0,0,0,4,5,6,0,0,0,7,8,9]

该列表由多段正数链组成,以0作为分隔符。我希望将每一段正数链分别放入独立的子列表中,而非合并为单个正数列表,预期输出如下:

List1=[1,2,3]
List2=[4,5,6]
List3=[7,8,9]

具体逻辑为:筛选第一段正数,遇到0时停止,创建新列表存储该段元素;重复此过程直至遍历完原列表所有元素,且子列表数量未知。我尝试用for循环和while循环实现,但似乎无法满足需求,恳请技术帮助。


解决方案

可以通过临时列表收集当前正数链的方式实现,逻辑简单直接,能处理连续0和末尾无0的情况:

代码实现

original_list = [1,2,3,0,0,0,0,4,5,6,0,0,0,7,8,9]
result = []
current_segment = []

for num in original_list:
    if num != 0:
        current_segment.append(num)
    else:
        # 遇到0且当前链不为空时,存入结果并重置临时列表
        if current_segment:
            result.append(current_segment)
            current_segment = []
# 处理最后一段未以0结尾的正数链
if current_segment:
    result.append(current_segment)

# 按预期格式输出命名子列表
for idx, segment in enumerate(result, start=1):
    print(f"List{idx}={segment}")

输出结果

List1=[1,2,3]
List2=[4,5,6]
List3=[7,8,9]

逻辑说明

  • 用current_segment临时存储正在收集的正数链,遇到非0元素直接追加
  • 遇到0时,仅当临时列表有内容时才存入结果,避免连续0产生空列表
  • 遍历结束后检查临时列表,确保最后一段没有被0截断的正数链被加入结果
  • 通过enumerate从1开始计数,轻松生成符合要求的命名子列表输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:42:02