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