我是 Python 的新手。我只是想知道是否可以在 O(1) 时间内找到列表或元组的长度。(len() 是 O(n))
在C中,我可以实现如下类似的事情:
int a[] = {1, 2, 3, 4 ,5};
printf("Length of Array a is :: %d\n", sizeof(a)/sizeof(a[0]));
我知道上述概念适用于地址,这就是为什么它在 C 中是可能的,而根据我的理解,Python 不处理地址。但是,出于好奇,我仍然想问这个问题。
len()
在 Python 中调用列表是O(1)
. 见这里。
这在 C 中的 O(1) 中起作用的原因不是因为它处理“地址”,而是因为在编译时知道大小。事实上,如果你在一个动态分配的数组上使用 sizeof(),你总是会得到一个指针的大小。
在 python 中,虽然你想使用 len()。