首先创建一个迭代器:
g = [i for i in range(100)]
我第一次不知道怎么获取长度,使用的是len(g),这个方法会出错,会报
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'generator' has no len()
我们可以使用:
len(list(g))
但是这个方法非常耗内存,不如使用这个
sum(1 for _ in g)
咱们还可以写一个函数来封装一下:
def get_length(generator):
if hasattr(generator,"__len__"):
return len(generator)
else:
return sum(1 for _ in generator)