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

Python如何跳过指定负数将一维列表转换为嵌套列表

解法1:基于你已收集的分割下标实现

你已经拿到了所有-64所在的下标,只需要给下标列表补上前置和后置边界,再按区间切片即可:

# 补全边界:开头补-1,结尾补列表总长度
full_index = [-1] + lst_index + [len(lst)]
res = []
for i in range(len(full_index)-1):
    # 取两个相邻分割点中间的部分,跳过-64本身
    start = full_index[i] + 1
    end = full_index[i+1]
    sub_lst = lst[start:end]
    # 存在连续-64的场景下,可以加判断过滤空列表
    if sub_lst:
        res.append(sub_lst)
print(res)

运行后就能得到你要的[[13, 1, 14], [9], [14, 5]]结果。

解法2:更简洁的单次遍历实现(无需提前收集下标)

如果你不需要单独留存-64的下标,可以直接一次遍历完成分割,代码更简洁,时间复杂度为O(n)效率更高,还能自动兼容列表开头/结尾是-64、连续多个-64的边界场景:

lst = [13, 1, 14, -64, 9, -64, 14, 5]
res = []
current = []
for num in lst:
    if num == -64:
        if current:
            res.append(current)
            current = []
    else:
        current.append(num)
# 遍历结束后把最后一段子列表加入结果
if current:
    res.append(current)
print(res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:39:05