本篇閱讀的代碼實現使用一個初始化種子和迭代函數,通過嵌套函數對初始化種子進行迭代,最終生成一個列表。
1、unfold函數接受迭代函數,并初始化種子,產生列表。
對函數fn進行迭代化處理,必須始終返回包含兩個元素的列表[value,nextSeed],或者返回False以終止構建器函數。
2、函數的unfold內部定義了構建器fn_generator。
這個構建器使用while循環調用迭代器函數并生成一個值,直到它返回False。最終通過列表導出,返回生成函數生成的列表。
構建器是一個簡單但功能強大的創建迭代器的工具。其書寫方式與標準函數相似,但是在要返回數據時使用yield語句。每當您對生成器調用next()時,它將從最后一次運行的位置恢復執行(它將記住最后一次執行語句時的所有數據值)。
fn_generator是用于while語句結束時使用yield返回當前while循環中val[0]的一個值。下次調用時,下一個循環繼續進行,在下一個循環中繼續返回val[0]的值,直到該迭代函數fn返回false結束while循環。
對于unfold函數的return語句,使用list導出不停地調用fn_generator生成器,直到生成器退出,形成列表并返回。
以上就是Python中如何使用初始化種子和迭代函數生成列表的介紹,希望對大家有所幫助。