[英]Where can I find the time and space complexity of the built-in sequence types in Python
[英]Is O(1) complexity of len(…) guaranteed by some PEP for built-in sequence types?
关于len(...)
成本的许多问题都得到了解答,但我没有找到任何Python文档的链接。
它是通过标准(在某些PEP中记录)还是在大多数Python实现中如何实现?
关于时间的某些内置Python对象的复杂文档是在这里 。
python中的len()
函数只调用类中的__len__
方法。 所以如果你构建了一个自定义类
class SlowLenList(object):
def __init__(self, mylist):
self.mylist = mylist
def __len__(self):
total = 1
for item in self.mylist:
total += 1
return total
那么在这种情况下复杂度将是O(n)。 所以它真的取决于你所呼唤的对象。 我假设内置列表和其他对象是O(1),因为它们在实例上有一个属性,每次将项添加到对象时它都会递增。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.