首页 > 解决方案 > python中重新分配的内存复杂度

问题描述

我想知道将python中的线性变量重新分配给新的线性类型变量的内存复杂度是多少。例如,考虑一个具有一个列表参数的函数,它将其转换为集合。

def func(list_var):
    list_var = set(list_var)
    return list_var

是 O(n) 内存复杂度还是 O(1)?

标签: pythonmemorycomplexity-theory

解决方案


分配本身不是必需的;从调用者的角度来看,以下具有完全相同的语义:

def func(list_var):
    return set(list_var)

重要的部分是对 的调用,它必须为 中的每个元素set分配一个具有新引用的数据结构,因此空间复杂度为 O(n)。nlist_var


推荐阅读