当前位置: 首页 > 面试题库 >

如何在Python中制作2D数组的副本?

柴霖
2023-03-14
问题内容

X是2D数组。我想要一个新变量Y,其值与数组相同X。此外, 使用Y进行的任何其他操作都不应影响X的值。

在我看来使用起来很自然y=x。但是它不适用于数组。如果我这样做,然后更改y,x也会更改。我发现问题可以这样解决:y = x[:]

但是它不适用于2D阵列。例如:

x = [[1,2],[3,4]]
y = x[:]
y[0][0]= 1000
print x

返回[ [1000, 2], [3, 4] ]。如果我替换为y=x[:],这也无济于事y = x[:][:]

有人知道什么是正确且简单的方法吗?


问题答案:

尝试这个:

from copy import copy, deepcopy
y = deepcopy(x)

我不确定,也许copy()就足够了。



 类似资料:
  • 问题内容: 我想对Python中的函数进行深拷贝。该 副本 模块是没有帮助的,根据文件,其中说: 该模块不复制诸如模块,方法,堆栈跟踪,堆栈框架,文件,套接字,窗口,数组或任何类似类型的类型。它通过不变地返回原始对象来“复制”函数和类(浅层和深层)。这与泡菜模块处理这些食物的方式兼容。 我的目标是使两个函数具有相同的实现,但具有不同的文档字符串。 那怎么办呢? 问题答案: FunctionType

  • 您好,我正在尝试制作一个数组,其结尾如下: 但最后却是这样说的 这是图像:数组 我仍然不明白Java,但我需要完成它作为家庭作业。

  • 问题内容: 我有一个二维数组,称为int类型的矩阵,我想用一种方法将其复制到局部变量,以便我可以对其进行编辑 什么是复制阵列的最佳方法,我遇到了一些麻烦 例如 问题答案: 有两种复制数组的好方法是使用clone和。 这是在2D情况下如何使用克隆的方法: 对于System.arraycopy(),你可以使用: 我没有基准,但是我可以用我的2美分打赌,它们比你自己做的更快,更不容易出错。特别是,它是用

  • 问题内容: 我需要弄清楚如何在二维numpy数组中找到值的所有索引。 例如,我有以下2d数组: 我需要找到所有1和0的索引。 我试过了,但是并没有给我所有的索引: 基本上,它只给我每一行中的一个索引。 问题答案: 您可以用来返回x和y索引数组的元组,其中给定条件保存在数组中。 如果是阵列名称: 如果要列出(x,y)对,则可以使用两个数组: 或者,甚至更好的是,@ jme指出这可能是生成配对的一种更

  • 问题内容: 我在python中初始化2D数组时遇到问题。我想要一个6x6的阵列,我做到了 但是当我这样做时: 注意,我只设置了1个项目,并且在所有行上都设置了“ replicated”。怎么了?我认为它与引用相同的列表有关,但是我该如何解决呢? 我估计 可以,但是初始化一个空的6x6数组似乎很长,如果我想要10000x10000数组怎么办,效率会很低? 更新 我还可以初始化2D数组的字典吗?我有一

  • 问题内容: 由于数组中的equals函数仅检查实例,因此它不适用于Set。因此,我想知道如何在Java中制作一组数组? 一种可能的方法是将每个数组放在一个对象中,并为该类实现equals函数,但这会降低性能吗? 问题答案: 由于ArrayList类已经包装了一个数组,因此您可以扩展它并覆盖and 方法。这是一个示例: 更新: 您甚至可以重写它以用于一般用途,只需将代码更改为: