gpt4 book ai didi

Python list.clear 复杂性

转载 作者:行者123 更新时间:2023-11-28 19:05:48 34 4
gpt4 key购买 nike

<分区>

Python 3 方法 list.clear() 的复杂度是多少?

  • 这里没有给出: https://wiki.python.org/moin/TimeComplexity

  • documentation据说它等同于 del
    a[:]
    ,但是不知道这个函数本身的复杂度。是它是 O(n) 还是 O(1)

  • 我查看了 listobject.c。找到了这个。

    int
    PyList_ClearFreeList(void)
    {
    PyListObject *op;
    int ret = numfree;
    while (numfree) {
    op = free_list[--numfree];
    assert(PyList_CheckExact(op));
    PyObject_GC_Del(op);
    }
    return ret;
    }

    这里看起来像O(n),但我不确定这是否是正确的代码。

我正在开发一个具有性能需求的程序,其中一个列表被反复填充和清空,我试图找到清空它的最佳方法(因为只有一种填充方法) .

如果这个函数是O(n),我只会每次都创建一个新列表,这有它自己的成本,但我不知道更好的方法方式。

我想到的另一个问题是 Python 有一个垃圾收集器,所以如果我不释放这些对象(每次都创建新列表,通过重新分配变量名让另一个无人看管),Python 会在后台进行删除(我不确定这个信息),所以我不会加快应用上述任何方法的速度,因为结果是一样的。

任何知识都是值得赞赏的。谢谢。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com