最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python遍歷列表時(shí)刪除元素的正確做法

 更新時(shí)間:2021年01月07日 09:00:23   作者:此生小會(huì)  
這篇文章主要介紹了詳解Python遍歷列表時(shí)刪除元素的正確做法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一.問(wèn)題描述

 這是在工作中遇到的一段代碼,原理大概和下面類(lèi)似(判斷某一個(gè)元素是否符合要求,不符合刪除該元素,最后得到符合要求的列表):

a = [1,2,3,4,5,6,7,8]
for i in a:
  if i>5:
    pass
  else:
    a.remove(i)
  print(a)

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

二.問(wèn)題分析

因?yàn)閯h除元素后,整個(gè)列表的元素會(huì)往前移動(dòng),而i卻是在最初就已經(jīng)確定了,是不斷增大的,所以并不能得到想要的結(jié)果。

三.解決方法

1.遍歷在新的列表操作,刪除是在原來(lái)的列表操作

a = [1,2,3,4,5,6,7,8]
print(id(a)) 
print(id(a[:])) 
for i in a[:]:
  if i>5:
    pass
  else:
    a.remove(i)
  print(a)
print('-------------------------')
print(id(a))

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

2.filter

內(nèi)建函數(shù)filter()官方文檔參考:https://docs.python.org/3/library/functions.html#filter

a = [1,2,3,4,5,6,7,8]
b = filter(lambda x: x>5,a)
print(list(b))

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

3.列表解析

a = [1,2,3,4,5,6,7,8]
b = [i for i in a if i >5]
print(b)

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

4.倒序刪除

因?yàn)榱斜砜偸恰跋蚯耙啤?,所以可以倒序遍歷,即使后面的元素被修改了,還沒(méi)有被遍歷的元素和其坐標(biāo)還是保持不變的。

a = [1,2,3,4,5,6,7,8]
print(id(a))
for i in range(len(a)-1,-1,-1):
  if a[i] > 5:
    pass
  else:
    a.remove(a[i])
print(id(a))
print('--------------------')
print(a)

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

到此這篇關(guān)于詳解Python遍歷列表時(shí)刪除元素的正確做法的文章就介紹到這了,更多相關(guān)Python遍歷列表刪除元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

长兴县| 皋兰县| 清水县| 兴城市| 祁阳县| 五家渠市| 成都市| 芦山县| 剑河县| 榕江县| 濮阳县| 兴仁县| 民乐县| 绵阳市| 焦作市| 武乡县| 莫力| 梨树县| 佛教| 勐海县| 将乐县| 河间市| 龙陵县| 佳木斯市| 长海县| 象州县| 虞城县| 奉新县| 庆安县| 拉萨市| 饶河县| 南郑县| 获嘉县| 苏州市| 红原县| 调兵山市| 长寿区| 乐亭县| 蒙阴县| 深州市| 古田县|