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