将未使用的数据传递给python函数:是否会损失性能?

时间:2019-01-20 20:50:18

标签: python function

假设我将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]?也许使用生成器可以节省内存?

1 个答案:

答案 0 :(得分:2)

没有复制发生; Python参数实际上是通过指针传递的,因此传递list的代价是相同的,无论其大小或内容如何。