用Python传递列表的代价是什么?

用Python传递列表的代价是什么?,python,Python,我有一个迭代函数phi,它多次调用自身以返回正确的结果 def phi(n, primes, phis): 其中素数是素数列表,1

我有一个迭代函数phi,它多次调用自身以返回正确的结果

def phi(n, primes, phis):
其中素数是素数列表,1
在Python中执行此操作是否需要昂贵的计算成本?我的猜测是,它不会花费太多,因为我们在Python中处理指针,所以只会传递指针?但是,使用此函数,即使是指针也会传递很多信息(读取:sh###load)。这在计算上很昂贵吗?

你是对的,你传递的不是整个列表,而是一个指针。您将为函数调用带来常规开销,这将远远超过指针/参数的传递。

您的代码慢吗?这并不是让它慢下来的原因,所以如果是的话,请描述并加快速度。@Julian不-这是我实际上正在考虑的一个想法。该函数实际上使用较小的φ(k)、φ(i)等来计算φ(n)。因此,如果它已经知道那些较小的φ(k),φ(i),等等,这个过程会快得多。相反,我的函数目前所做的是将这些较小的值计算数百万次。因此,我正在考虑传递一个列表。但是,如果您使用
多处理
遵循此模式,请小心。在这种情况下,您将对每个生成的子对象的整个列表进行酸洗和取消酸洗。明白了-谢谢。出于好奇,有没有办法找出这些各自的日常开支是多少?timeit是唯一合理的方法吗?@Daenyth在你提到它之前,我已经找到了去图书馆那一部分的路:-)@nebffa Daenyth提供的评测链接是一个很好的起点(你已经知道timeit)