缺少迭代遍历和计算迭代次数的方法。这就是使其成为可迭代的而不是列表的原因。这实际上甚至不是特定于python的问题。看一下经典的链表数据结构。查找长度是一个O(n) *** 作,涉及对整个列表进行迭代以查找元素的数量。
正如上面提到的,您可以将函数缩减为:
def count_iterable(i): return sum(1 for e in i)
当然,如果要定义自己的可迭代对象,则始终可以实现
__len__自己并将元素计数保持在某个位置。
欢迎分享,转载请注明来源:内存溢出
缺少迭代遍历和计算迭代次数的方法。这就是使其成为可迭代的而不是列表的原因。这实际上甚至不是特定于python的问题。看一下经典的链表数据结构。查找长度是一个O(n) *** 作,涉及对整个列表进行迭代以查找元素的数量。
正如上面提到的,您可以将函数缩减为:
def count_iterable(i): return sum(1 for e in i)
当然,如果要定义自己的可迭代对象,则始终可以实现
__len__自己并将元素计数保持在某个位置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)