我正在浏览 https://wiki.python.org/moin/TimeComplexity python 中的列表。我知道 python 列表在内部用作数组。但是列表的内部长度是 O(1)。因为它需要遍历到列表的末尾并增加计数器并返回它。
提前致谢
请您参考如下方法:
TL;DR 列表跟踪它们的长度。
在 CPython 中,调用 len([]) 会调用 Py_SIZE C 宏,它只返回 ob_size 属性的值。
static Py_ssize_t
list_length(PyListObject *a)
{
return Py_SIZE(a);
}
#define Py_SIZE(ob) (_PyVarObject_CAST(ob)->ob_size)
