如何在常规时间内在python中查找list / tuple的大小

时间:2012-09-12 03:03:43

标签: python pointers

我是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不处理地址。但是为了好奇,我仍然想问这个问题。

2 个答案:

答案 0 :(得分:6)

在Python中的列表上调用len()O(1)。请参阅here

答案 1 :(得分:3)

这在C中的O(1)中起作用的原因不是因为它处理“地址”而是因为在编译时已知大小。实际上,如果您在动态分配的数组上使用sizeof(),您将始终获得指针的大小。

在python中虽然你想使用len()。