python語(yǔ)言的一大優(yōu)點(diǎn)就是簡(jiǎn)潔大方容易上手图贸,而列表推導(dǎo)式這一特性無(wú)疑是非常python的一種特性都毒,它能讓你的代碼簡(jiǎn)潔到窒息评凝。
小舉一個(gè)例子坯钦,比如你想得到1:10之間所有的偶數(shù),最直接的方法就是寫(xiě)一個(gè)循環(huán):
result = []
for i in range(1, 11):
if i%2 == 0
result.append(i)
需要四行來(lái)實(shí)現(xiàn)益咬,如果選擇列表推導(dǎo)式呢?
[i for i in range(1, 11) if i%2==0 ]
一行解決問(wèn)題帜平!是不是很方面坝母妗?你甚至可以多層嵌套使用推導(dǎo)式裆甩,比如
[ [i+2 for i in list_1] for list_1 in list_2]
除來(lái)列表冗锁,詞典也支持推導(dǎo)式,比如你有key列表嗤栓,value列表冻河,生成詞典
{ki: vi for ki, vi in zip(key, value)}
節(jié)省了些for循環(huán)的時(shí)間箍邮,香!
當(dāng)然簡(jiǎn)潔有時(shí)會(huì)犧牲一定的可讀性叨叙,如果你套了三層的推導(dǎo)式锭弊,我想負(fù)責(zé)檢查你代碼的同學(xué)很有可能想掐死你。最后提醒大家推導(dǎo)式雖好擂错,可不要“貪杯”哦味滞!