Python中的生成器是一種非常強大且普遍使用的編程機制。生成器可以幫助我們節省內存占用,提高代碼的性能和可維護性。在這篇文章中,我們將介紹Python中的生成器。
def my_generator(l): for i in l: yield i * i my_list = [1, 2, 3, 4, 5] my_new_list = my_generator(my_list) for i in my_new_list: print(i)
上面這個簡單的代碼塊展示了一個生成器函數的基本結構。定義一個函數,用yield來生成結果。在我們的例子中,我們定義了一個生成器函數: my_generator。它接受一個列表作為參數,在運行時,我們使用yield來生成輸入列表的平方。我們可以在任何時間訪問并使用生成器,只要定義生成器的函數在之前被定義過即可。在我們的例子中,我們定義了一個生成器生成一個新的列表,然后打印出來。這個生成器可以在任何時間被聲明和使用。
def my_generator(): yield 1 yield 2 yield 3 yield 4 yield 5 my_new_list = my_generator() for i in my_new_list: print(i)
另一種定義生成器函數的方式是使用yield關鍵字來生成結果。在這個例子中,我們定義了一個生成器,它依次生成1,2,3,4和5。我們把生成器的引用賦值給一個變量,然后用for循環打印出每個生成器產生的值。
def countdown(n): while n >0: yield n n -= 1 for i in countdown(5): print(i)
實際上,生成器的函數體可以有非常復雜的行為,通常將生成器應用于處理大型數據集或連續流的數據時,最常見的用例是帶有while循環的yield語句。例如,這個例子定義了一個倒計時生成器,每次生成器被調用時都會減少一個計數器。這個生成器一直運行,知道計數器為零。
上一篇python 生日快樂
下一篇python 生成零向量