Python:`len()`是如何执行的
可能重复的问题:
len()函数的开销
Python是怎么计算一个列表的长度的(使用len()
函数)?它是通过for
循环或while
循环来实现的吗,还是有某个内部变量专门用来存储列表的长度呢?
4 个回答
4
a = range(10)
b = range(1000000)
timeit len(a) # 85.4 ns
timeit len(b) # 94.4 ns
这看起来不像是一个循环。
5
它使用了一个内部变量来存储列表的长度(就像Python中所有其他可变长度的对象类型一样)。所以,len()这个函数的运行时间是O(1),无论列表的大小如何(也就是说,它的运行时间是固定的,不会随着列表的大小变化而变化)。
这里是列表的len()实现,这里是它调用的Py_SIZE宏,还有这里是Py_SIZE使用的ob_size声明。