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

如何在Python中定义Jagged array(锯齿数组)?

Python 中实现锯齿数组的方法

Python 原生支持锯齿数组(也就是各行长度不一致的多维嵌套序列),不需要安装任何第三方库,靠的就是Python列表动态可变、没有固定长度限制的特性。
你贴的C#锯齿数组定义逻辑,在Python里可以直接对应实现:

和C#逻辑对齐的分步写法

原C#代码是先声明含3个元素的外层数组,再分别初始化长度为5、4、2的内层数组,Python等价写法如下:

# 先初始化长度为3的外层列表,用None占位
jagged_array = [None] * 3
# 逐行给不同长度的内层列表赋值,这里默认填充0
jagged_array[0] = [0] * 5
jagged_array[1] = [0] * 4
jagged_array[2] = [0] * 2

运行后打印jagged_array就能得到结构[[0, 0, 0, 0, 0], [0, 0, 0, 0], [0, 0]],完全符合锯齿数组的结构要求。

日常更常用的简洁写法

实际写代码没必要分步初始化,直接一次性定义整个数组就行,元素值可以按需自定义:

jagged_array = [
    [1, 2, 3, 4, 5],  # 第一行长度5
    [6, 7, 8, 9],     # 第二行长度4
    [10, 11]          # 第三行长度2
]

如果要批量生成指定行长度、统一填充值的锯齿数组,推荐用列表推导式,能避开引用复用的坑:

# 按照5、4、2的行长度要求,生成全0填充的锯齿数组
jagged_array = [ [0] * row_len for row_len in (5, 4, 2) ]

避坑提醒:别用[[0]*5]*3这类连续乘法的写法批量生成嵌套列表,这种写法下所有内层列表会指向同一个内存地址,修改任意一行的元素,其他行对应位置的值也会同步被改动。

内容的提问来源于stack exchange,提问作者shamim-shzd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:31:18