如何在Python中填充嵌套列表?

问题描述 投票:0回答:1

我有一个很长的嵌套列表,具有以下不规则结构:

[[[1,2,3], [1,2,3], [1,2,3]],
 [[1,2,3], [1,2,3]],
 [[1,2,3], [1,2,3], [1,2,3], [1,2,3]],
  ...]

我想在开始时用-10填充它,如下所示:

[[[-10,-10,-10], [-10,-10,-10], [1,2,3], [1,2,3], [1,2,3]],
 [[-10,-10,-10], [-10,-10,-10], [-10, -10, -10], [1,2,3], [1,2,3]],
 [[-10,-10,-10], [1,2,3], [1,2,3], [1,2,3], [1,2,3]],
  ...]

嵌套列表的第二层有 5 个元素,每个元素有 3 个数字。

我无法使用np.pad,因为我无法将不规则长度列表转换为数组。

提前谢谢您,因为我是初学者。

python list multidimensional-array padding nested-lists
1个回答
0
投票

您有一个三元素列表的列表。 您希望将其设为 3 元素列表的 5 元素列表的列表。 如果二级列表中没有足够的元素,您需要在列表的开头添加

[-10, -10, -10]

new_list = []
for second_level in old_list:
    if len(second_level) < 5:
        new_second_level = [[-10, -10, -10]] * (5-len(second_level)) + second_level 
    else:
        new_second_level = second_level 
    new_list.append(new_second_level)

请注意,您可以使用 * 运算符多次复制列表。

在使用列表理解的简短版本中,

new_list = [[[-10, -10, -10]] * (5 - len(second_level)) + second_level for second_level in old_list]
© www.soinside.com 2019 - 2024. All rights reserved.