1. 程式人生 > 其它 >python 獲取list長度_python迭代器獲取長度的方法

python 獲取list長度_python迭代器獲取長度的方法

技術標籤:python 獲取list長度

首先建立一個迭代器:

 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)