產生器函數、迭代器和yield關鍵字是Python中的基本概念,可讓您增量產生資料.
迭代器是從集合中傳回一個值的物件一次。若要存取每個後續值,請重複呼叫 next() 方法。
生成器函數建立迭代器。它們與常規函數類似,但包含yield 語句。 yield 的行為類似於 return,但它不是終止函數,而是暫停執行並傳回值。
yield 關鍵字在產生器函數中使用。每次呼叫yield時,生成器函數都會傳回指定的值並暫停執行。當再次呼叫生成器時,將從最後一個yield語句停止的位置恢復執行。
考慮以下程式碼:
def generate_numbers(): for i in range(5): yield i
此程式碼定義產生 0 到 4 之間整數的產生器函數。使用next() 呼叫時,函數傳回0、1、2、3 和4
生成器函數常用:
可以控制發電機功能以避免過早耗盡。例如:
class Bank: def create_atm(self): while True: yield "0"
此程式碼建立一個無限 ATM 產生器。但是,您可以透過將 True 指派給 self.crisis 來終止它。這種方法對於控制資源可用性很有用。
itertools 模組提供了用於操作可迭代的附加工具,例如 permutations(),它可以從清單中產生所有可能的排列。
以上是Python的「yield」關鍵字如何實現高效率的資料生成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!