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