我有一个很长的嵌套列表,具有以下不规则结构:
[[[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,因为我无法将不规则长度列表转换为数组。
提前谢谢您,因为我是初学者。
您有一个三元素列表的列表。 您希望将其设为 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]