【发布时间】:2022-01-15 23:08:30
【问题描述】:
我正在处理 numpy 数组的(列表)列表。作为一个简单的例子,考虑这段代码:
a = [np.zeros(5)]
b = a.copy()
b[0] += 1
在这里,我将一个数组列表从a 复制到b。但是,数组本身并没有被复制,所以:
print(a)
print(b)
两者都给[array([1., 1., 1., 1., 1.])]。如果我也想复制数组,我可以这样做:
b = [arr.copy() for arr in a]
和a 将保持不变。这适用于简单列表,但在使用嵌套的数组列表时会变得更加复杂,其中每个列表中的数组数量并不总是相同。
是否有一种简单的方法可以复制多级列表及其包含的每个对象,而不保留对原始列表中对象的引用?基本上,我想避免嵌套循环以及处理每个单独子列表的大小。
【问题讨论】:
标签: python numpy-ndarray nested-lists