推導(dǎo)式comprehension(又稱解析式),是python的一種獨有特性。推導(dǎo)式是從一個數(shù)據(jù)序列構(gòu)建另外一個數(shù)據(jù)序列結(jié)構(gòu)體。共有三種推導(dǎo)。
- 字典推導(dǎo)式
- 列表推導(dǎo)式
- 集合推導(dǎo)式
【列表推導(dǎo)式】
列表推導(dǎo)是能夠非常簡潔的構(gòu)造一個新列表:只用一個非常簡潔的表達(dá)式即可對得到的元素進(jìn)行變形。
其基本格式如下:
[expr for value in collection if condition]
過濾條件可有可無,取決于實際應(yīng)用,只留下表達(dá)式,相當(dāng)于下面的for循環(huán):

tui1.png
以下為例可以更加了解列表推導(dǎo)式
將names 列表中字符長度小于3的過濾掉并將名字轉(zhuǎn)換為大寫

tui2.png
【字典推導(dǎo)式】
字典推導(dǎo)式思路列表推導(dǎo)式相似,只不過產(chǎn)生的是字典而已,其基本的表達(dá)形式如下:
{key_expr : value_expr for value in collections if condition}
例題
以列表內(nèi)字符以及字符長度建立一個字典

tui3.png
【集合推導(dǎo)式】
集合推導(dǎo)式與字典推導(dǎo)式表達(dá)式相同,只不過是外圍符號由[]變成大括號{}
{expr for value in collection if condition}
例子 用集合推導(dǎo)建字符串長度的集合

tui4.png
【嵌套列表推導(dǎo)式】
嵌套列表是指列表中嵌套有列表如下圖

tui5.png
例子:提取含有分表含有兩個列表中名字中含有‘e'多于2個的名字

tui6.png
使用推導(dǎo)式的語句如下:

tui7.png