切片
? ? 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ù)。