假设我将一个 2D 列表(嵌套列表)传递给一个 python 函数,该函数仅使用该列表的一部分,例如第一个轴。 python 会将整个数组“传输”或复制到函数中吗?我不希望 python 复制或传输整个数据;对于大型数组来说效率很低。理想情况下,我希望仅传递一个指针,或者最多“传输”所需的部分。
def mysum(x):
s = x[0][0]+x[1][0]
return s
x = [[1,2], [3,4]]
s1 = mysym(x)
s2 =mysum([x[i][0] for i in range(2)])
在这个例子中,x[0][1]和x[1][1]是如何处理的?也许使用生成器可以节省内存?
最佳答案
没有发生复制; Python 参数实际上是通过指针传递的,因此无论大小或内容如何,传递列表
的成本都是相同的。
关于python - 将未使用的数据传递给 python 函数 : any loss of performance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54280837/