Python列表解析操作實(shí)例總結(jié)
本文實(shí)例講述了Python列表解析操作。分享給大家供大家參考,具體如下:
列表解析Python 的強(qiáng)大特性之一是其對(duì) list 的解析,它提供一種緊湊的方法,可以通過(guò)對(duì) list 中的每個(gè)元素應(yīng)用一個(gè)函數(shù),從而將一個(gè) list 映射為另一個(gè) list。 列表解析,又叫列表推導(dǎo)式( list comprehension) 列表解析比 for 更精簡(jiǎn),運(yùn)行更快,特別是對(duì)于較大的數(shù)據(jù)集合 列表解析可以替代絕大多數(shù)需要用到 map和 filter的場(chǎng)合
列表推導(dǎo)式提供了一個(gè)創(chuàng)建鏈表的簡(jiǎn)單途徑,無(wú)需使用 map() , filter() 以及 lambda 。以定義方式得到列表通常要比使用構(gòu)造函數(shù)創(chuàng)建這些列表更清晰。每一個(gè)列表推導(dǎo)式包括在一個(gè) for 語(yǔ)句之后的表達(dá)式,零或多個(gè) for 或 if 語(yǔ)句。返回值是由 for 或 if 子句之后的表達(dá)式得到的元素組成的列表。如果想要得到一個(gè)元組,必須要加上括號(hào)。
基本列表解析基本
>>> [x for x in range(5)] # [0, 1, 2, 3, 4]l1 = [1,2,3,4][ x*2 for x in l1] #[2,4,6,8]
多個(gè)值的
[ ’%s = %s’ for (k, v) in a_map.items()]
兩次循環(huán)
>>> l1 = [1,2,3,4]>>> l2 = [1,2,3,4]>>> [x+y for x in l1 for y in l2][2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8]
可以調(diào)用函數(shù)
[ func(x) for x in l1] #等價(jià)于map
注意,列表解析不會(huì)改變?cè)辛斜淼闹担瑫?huì)創(chuàng)建新的list
條件列表解析[ x for x in range(100) if x%2 ==0 ]嵌套列表解析
mat = [ [1, 2, 3],[4, 5, 6], [7, 8, 9]]
交換行列
[ [row[i] for row in mat] for i in (0,1,2)] #[[1, 4, 7], [2, 5, 8], [3, 6, 9]]其他:
1.根據(jù)索引取元素時(shí),需要進(jìn)行邊界檢查 IndexError 切片取,不需要,超過(guò)邊界不會(huì)異常
2.在迭代中修改列表 注意,不安全,不建議這么干 但是可以 for i in l1[:]: l1.insert()……
3.多個(gè)list合成一個(gè) 就是
[’a’,’b’,.....],[’a’,’b’.....][’a’,’b’.....]
變?yōu)?/p>
[’a’,’b’,.....,’a’,’b’.....’a’,’b’.....]
處理
>>> sum ([[ ’a’, ’b’ ],[’a’ , ’b’],[ ’a’ ,’b’ ]], [])[’a’ , ’b’ , ’a’, ’b’ , ’a’ , ’b’]>>> list (itertools .chain([ ’a’ ,’b’ ],[ ’a’, ’b’ ],[’a’ , ’b’]))[’a’ , ’b’ , ’a’, ’b’ , ’a’ , ’b’]
4.關(guān)于堆棧和隊(duì)列
通過(guò)上面的操作,可以發(fā)現(xiàn),很輕易可以拿列表當(dāng)做堆棧或者隊(duì)列使用 當(dāng)然,他們有自己的模塊,可以查相關(guān)庫(kù)
5.序列相關(guān)模塊
array 一種受限制可變序列類型,要求所有元素必須是相同類型
copy 提供淺拷貝和深拷貝的能力
operator 包含函數(shù)調(diào)用形式的序列操作符,如 operator.concat(m,n) 相當(dāng)于m+n
re 正則表達(dá)式
types 包含Python 支持的所有類型
collections 高性能容器數(shù)據(jù)類型
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python列表(list)操作技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. 如何在jsp界面中插入圖片2. ASP實(shí)現(xiàn)加法驗(yàn)證碼3. python selenium 獲取接口數(shù)據(jù)的實(shí)現(xiàn)4. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)5. 詳解JSP 內(nèi)置對(duì)象request常見(jiàn)用法6. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算7. Python matplotlib 繪制雙Y軸曲線圖的示例代碼8. jsp EL表達(dá)式詳解9. JSP servlet實(shí)現(xiàn)文件上傳下載和刪除10. springboot集成與使用Sentinel的方法
