Python生成器表達式是一種簡潔的創建生成器的方法,它可以用一行代碼替代一個復雜的循環結構。生成器表達式在括號內定義,語法類似于列表推導式,但使用圓括號而不是方括號。
以下是一個簡單的例子,說明如何使用生成器表達式簡化代碼:
假設我們有一個列表numbers
,我們想要創建一個生成器,該生成器包含numbers
中所有偶數的平方。
使用生成器表達式簡化代碼:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_squares_generator = (x**2 for x in numbers if x % 2 == 0)
使用傳統的for循環實現相同功能:
even_squares_generator = []
for x in numbers:
if x % 2 == 0:
even_squares_generator.append(x**2)
可以看到,生成器表達式使得代碼更加簡潔。需要注意的是,生成器表達式是惰性求值的,這意味著它們只在需要時計算下一個元素,因此在內存效率方面具有優勢。