<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1143字,需瀏覽 3分鐘

           ·

          2021-01-13 01:40

          這篇文章主要介紹了詳解Python遍歷列表時刪除元素的正確做法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

          一.問題描述

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

          1. a?=?[1,2,3,4,5,6,7,8]

          2. for?i?in?a:

          3. if?i>5:

          4. pass

          5. else:

          6. a.remove(i)

          7. print(a)

          運行結(jié)果:

          二.問題分析

          因為刪除元素后,整個列表的元素會往前移動,而i卻是在最初就已經(jīng)確定了,是不斷增大的,所以并不能得到想要的結(jié)果。

          三.解決方法

          1.遍歷在新的列表操作,刪除是在原來的列表操作

          1. a?=?[1,2,3,4,5,6,7,8]

          2. print(id(a))

          3. print(id(a[:]))

          4. for?i?in?a[:]:

          5. if?i>5:

          6. pass

          7. else:

          8. a.remove(i)

          9. print(a)

          10. print('-------------------------')

          11. print(id(a))

          運行結(jié)果:

          2.filter

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

          1. a?=?[1,2,3,4,5,6,7,8]

          2. b?=?filter(lambda?x:?x>5,a)

          3. print(list(b))

          運行結(jié)果:

          3.列表解析

          1. a?=?[1,2,3,4,5,6,7,8]

          2. b?=?[i?for?i?in?a?if?i?>5]

          3. print(b)

          運行結(jié)果:

          4.倒序刪除

          因為列表總是“向前移”,所以可以倒序遍歷,即使后面的元素被修改了,還沒有被遍歷的元素和其坐標(biāo)還是保持不變的。

          1. a?=?[1,2,3,4,5,6,7,8]

          2. print(id(a))

          3. for?i?in?range(len(a)-1,-1,-1):

          4. if?a[i]?>?5:

          5. pass

          6. else:

          7. a.remove(a[i])

          8. print(id(a))

          9. print('--------------------')

          10. print(a)

          運行結(jié)果:

          到此這篇關(guān)于詳解Python遍歷列表時刪除元素的正確做法的文章就介紹到這

          1. 歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

            萬水千山總是情,點個【在看】行不行

          2. *聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天票天天色天天干 | 北条麻妃操操日日 | 黄色特级片 | 美女日比| 逼操操|