使用函数复制数组

时间:2019-06-24 12:49:58

标签: arrays python-3.x copy

我想使用函数将一个数组复制到另一个数组。但是以下代码不起作用。请纠正我,并指导我如何执行此最简单的任务。我是编程的初学者。

Sub separate()
    Dim instrb As Integer
    Dim Instra As Integer
    Dim i As Integer

    i = 2

    Do Until Worksheets(1).Cells(i, "A") = ""
        instrb = InStr(Cells(i, "A").Text, "pm")
        Instra = Instrab + 2
        Cells(i, "B").Value = Right(Worksheets(1).Cells(i, "A"), Len(Worksheets(1).Cells(i, "A") - Instra) + 2).Text
        i = i + 1
    Loop
End Sub

上面的代码显示的是#----------------------------------------- def copy(): a=b # ======================================== import numpy as np a = np.ones(5) b = np.zeros(5) copy() print(a) # ======================================== 而不是[1 1 1 1 1]

在不使用函数的情况下,我得到正确答案,如下所示:

[0 0 0 0 0]

2 个答案:

答案 0 :(得分:0)

def copy():
    a=b

此方法仅声明一个新的局部变量a并将其分配给b。现在,如果您之前定义了全局变量b,那么a将使用该b的值。否则,将引发错误,提示b之前未定义。

在任何一种情况下,此方法均不涉及全局变量a

如果您要修改全局变量a,则需要将其告知python:

def copy():
    global a
    a = b

但是对于像分配这样简单的事情,此解决方案不是很干净(并且过于复杂)。我建议您坚持使用第二个版本。

答案 1 :(得分:0)

您使用了错误的语法:-

尝试这个-

def copy(a, b):
    a = b.copy()
    return a

a = np.ones(5)
b = np.zeros(5)

print(copy(a, b))