2018-07-15 高級(jí)特性

切片

? ? list和tuple可使用切片,例如L[x:y]來(lái)獲得第x到y(tǒng)-1的內(nèi)容。

? ? 有趣的是,字符串在python中也可以被視作一種list。

迭代

可以用 for key in d ,? for value in d.values() , for k,v in d.items() 來(lái)迭代dict中的 key value 或同時(shí)迭代二者,默認(rèn)情況下迭代為key。使用enumerate函數(shù)可以將list變?yōu)樗饕?元素對(duì),在迭代時(shí)可對(duì)二者同時(shí)進(jìn)行調(diào)用。

列表生成

? ??[x * x for x in range(1,11)]

? ? (MATLAB表示列表生成在座的各位都是垃圾)

生成器和迭代器

生成器

? ? 生成器在循環(huán)過(guò)程中不斷推算出后續(xù)內(nèi)容,從而減小內(nèi)存占用,生成器同樣可以使用for.. in..調(diào)用。

? ? 方法一,可以把列表生成中[]改為()獲得。

? ? 方法二,使用yield關(guān)鍵字生成。注意,在有yield的情況下,調(diào)用next時(shí)執(zhí)行,遇到y(tǒng)ield返回,再次執(zhí)行時(shí)從上次返回的yield語(yǔ)句處繼續(xù)。

迭代器

????可以被next()函數(shù)調(diào)用并不斷返回下一個(gè)值的對(duì)象稱為迭代器:Iterator。生成器都是Iterator對(duì)象,但list、dict、str雖然是Iterable,卻不是Iterator。把list、dict、str等Iterable變成Iterator可以使用iter()函數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容