生成器表示式

可以使用類似於類似理解的語法建立生成器迭代器。

generator = (i * 2 for i in range(3))

next(generator)  # 0
next(generator)  # 2
next(generator)  # 4
next(generator)  # raises StopIteration

如果函式不一定需要傳遞給列表,則可以通過在函式呼叫中放置生成器表示式來儲存字元(並提高可讀性)。函式呼叫的括號隱式地使表示式成為生成器表示式。

sum(i ** 2 for i in range(4))  # 0^2 + 1^2 + 2^2 + 3^2 = 0 + 1 + 4 + 9 = 14

此外,你將節省記憶體,因為生成器允許 Python 根據需要使用值,而不是載入你正在迭代的整個列表(在上面的示例中為 [0, 1, 2, 3])。