国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素示例

2019-11-25 16:06:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素。分享給大家供大家參考,具體如下:

從列表中刪除滿足一定條件的元素。

如:刪除一個(gè)列表中長(zhǎng)度為0的元素,或者刪除列表中同時(shí)是2和3的倍數(shù)的元素。

做過(guò)高級(jí)語(yǔ)言編程的人想當(dāng)然的會(huì)認(rèn)為“這很簡(jiǎn)單”,可以如下面的方式來(lái)實(shí)現(xiàn):

for i in listObj:  if(...):    listObj.remove(i)

看下一個(gè)小例子和結(jié)果:

a = [1, 2, 3, 12, 12, 5, 6, 8, 9]for i in a:    if i % 2 == 0 and i % 3 == 0:      a.remove(i)print(a)

運(yùn)行結(jié)果:

E:/Program/Python>d.py[1, 2, 3, 12, 5, 8, 9]

看到了嗎?12竟然沒(méi)有被刪除!!!(這是Python列表操作的一個(gè)非常容易出錯(cuò)的地方)

要實(shí)現(xiàn)預(yù)期的目標(biāo),其實(shí)還是有不少變通方法的,比如:

a = [1, 2, 3, 12, 12, 5, 6, 8, 9]b = a[:]for i in a:    if i % 2 == 0 and i % 3 == 0:      b.remove(i)a = bprint(a)

運(yùn)行結(jié)果:

E:/Program/Python>d.py[1, 2, 3, 5, 8, 9]

看看,現(xiàn)在達(dá)到預(yù)期的目標(biāo)了吧。從上面的代碼不難發(fā)現(xiàn),我們構(gòu)建了列表b,復(fù)制了列表a中的所有元素,通過(guò)遍歷a來(lái)刪除b中的元素,最后把a(bǔ)指向b。

我還發(fā)現(xiàn)了另一種方法,自認(rèn)為挺不錯(cuò)的――列表推導(dǎo)式

a = ['what', '', '', 'some', '', 'time']a = [i for i in a if len(i) > 0]print(a)b = [1, 2, 3, 12, 12, 5, 6, 8, 9]b = [i for i in b if not(i % 3 == 0 and i % 2 == 0)]print(b)

運(yùn)行結(jié)果:

E:/Program/Python>d.py['what', 'some', 'time'][1, 2, 3, 5, 8, 9]

相比較之下,您認(rèn)為哪種寫(xiě)法更好呢??從性能上來(lái)看,可能效率都不是太好,但是從寫(xiě)法簡(jiǎn)潔上來(lái)看,我是更喜歡后者!

更多Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 专栏| 陆丰市| 南陵县| 宣汉县| 遂平县| 措美县| 玉山县| 东莞市| 集贤县| 广汉市| 名山县| 金坛市| 饶阳县| 连山| 公安县| 龙游县| 千阳县| 临高县| 洮南市| 大余县| 东宁县| 漾濞| 达州市| 共和县| 石河子市| 河西区| 卫辉市| 陈巴尔虎旗| 江油市| 双鸭山市| 富锦市| 德江县| 汕头市| 桦甸市| 法库县| 汤阴县| 珲春市| 海阳市| 六安市| 丰都县| 通渭县|