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

如何初始化与指定嵌套列表同维度的全零嵌套列表

解决不规则嵌套列表的全0复刻问题

我明白你的问题啦!你遇到的问题其实是因为numpy.zeros_like()是为规则的numpy多维数组设计的,而你的嵌套列表属于「不规则列表(ragged list)」——每个子列表的长度都不一样,numpy没法把这种结构转换成标准的多维数组,所以用这个函数自然会出问题。

那咱们怎么实现和原列表结构完全一致的全0嵌套列表呢?这里有两种简单好用的方法:

方法一:列表推导式(最简洁)

这是Python里处理这类问题最常用的方式,一行代码就能搞定:

A = [[1,2,3,4], [5,6,7], [8,9,10,11,12], [13,14]]
B = [[0]*len(sublist) for sublist in A]
print(B)
# 输出:[[0,0,0,0],[0,0,0],[0,0,0,0,0],[0,0]]

原理很简单:遍历原列表A中的每一个子列表,生成一个长度和该子列表完全相同的全0列表,最后把这些全0子列表组合起来,就得到了和A结构一模一样的B。

方法二:显式循环(适合新手理解)

如果你觉得列表推导式有点抽象,也可以用更直观的循环写法:

A = [[1,2,3,4], [5,6,7], [8,9,10,11,12], [13,14]]
B = []
for sublist in A:
    # 生成和当前子列表长度一致的全0列表
    zero_sublist = [0 for _ in sublist]
    B.append(zero_sublist)
print(B)
# 输出和上面完全一样

这种写法一步步拆解了过程:先初始化一个空列表B,然后逐个处理A里的子列表,每个子列表对应生成一个全0的子列表,再把它添加到B中,最终得到目标结构。

这两种方法都能完美解决你的需求,而且不需要依赖numpy,完全用Python原生列表操作就能实现~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:11:23