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

如何让Python数组ass的每个子数组生成从0开始的连续整数序列?

二维数组子数组的连续序列转换实现

需求说明

给定二维数组:

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

需对每个子数组执行如下处理:

  • 若子数组以0开头,直接保留原数组;
  • 若子数组不以0开头,替换为从0开始到该子数组最大值的连续整数序列。

实现代码(Python)

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

processed_array = []
for sub in ass:
    # 判断子数组是否以0起始
    if sub[0] == 0:
        processed_array.append(sub.copy())
    else:
        # 获取子数组最大值,生成0到最大值的连续序列
        max_num = max(sub)
        processed_sub = list(range(max_num + 1))
        processed_array.append(processed_sub)

# 输出处理后的数组
print(processed_array)

代码解释

  1. 遍历子数组:循环遍历原二维数组中的每个子数组;
  2. 起始判断:检查子数组的第一个元素是否为0,是则复制原数组加入结果(避免引用修改问题);
  3. 生成连续序列:若子数组不以0开头,先取子数组的最大值,利用range()生成从0到最大值的连续整数(range左闭右开,因此需max_num + 1),转成列表后加入结果。

运行结果

执行代码后输出:

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

额外注意

  • 若输入中存在空的子数组,需额外添加判断逻辑(如跳过或按需求生成对应序列);
  • 使用sub.copy()而非直接append(sub),是为了避免后续修改原数组时影响结果列表中的元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:23:23