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

關于python中remove的一些坑小結

 更新時間:2021年01月04日 10:02:23   作者:Lipx9527  
這篇文章主要給大家介紹了關于python中remove的一些坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前幾天,使用python時遇到這么一個需求,刪除一個列表中值為1的元素。我尋思著使用remove方法,但是remove方法只會刪除第一個,于是我使用for循環(huán)去刪除。代碼和運行結果如下:

當時這個結果讓我很懵逼,為什么1沒有被刪除完?查了資料發(fā)現(xiàn),是for循環(huán)搗的鬼。因為for循環(huán)實際是循環(huán)的列表下標(索引),同時由于列表的可變性,每一次刪除一個元素,列表的長度就會發(fā)生變化,元素的索引也會發(fā)生變化。這里來具體分析一下這段代碼:

第一次循環(huán),循環(huán)索引為0,此時索引為0的元素是1,滿足條件,因此mylist中的第一個1被刪除,此時mylist變?yōu)閇1,2,1,1,3,4];

第二次循環(huán),循環(huán)索引為1,此時新列表中,索引為1的元素是2,不滿足條件,mylist仍然為[1,2,1,1,3,4];

第三次循環(huán),循環(huán)索引為2,此時列表中,索引為2的元素是1,滿足條件,remove方法會再次刪除一個1,但是remove會刪除第一次出現(xiàn)的1(即刪除索引為0的那個1),因此列表變?yōu)閇2,1,1,3,4];

第四次循環(huán),循環(huán)索引為3,新列表中,索引為3的元素是3,不滿足條件,mylist仍然為[2,1,1,3,4];

第五次循環(huán),循環(huán)索引為4,此時列表中,索引為4的元素是4,不滿足條件,mylist仍然為[2,1,1,3,4];

此時,由于新列表長度為5,于是循環(huán)結束。

下面的截圖結果能夠很直觀的看出來。

至此,如果是這樣的一段代碼,結果應該是怎樣?

最終mylist=['b','d'],怎么樣,和你計算的值是否一樣?

回到最初的需求,要怎樣才能刪除所有的1,這里可以使用deepcopy來復制一份,之后一個列表用于循環(huán),一個用于移除值。代碼和結果如下:

這樣就可以實現(xiàn)刪除列表中的所有值為1的元素。這里可能有人會問,為什么不直接將l1賦值給一個變量,即l2=l1,這里涉及到引用和深淺復制的問題,因此不在此處解答

附:Python列表的remove方法的注意事項

為何沒有刪除列表中的全部元素?

解釋:

按照執(zhí)行順序,第一個空格被刪除之后,后面的元素會前移(變成['空格','空格','12','23']),指針下一次會指向新列表的第二個元素(即初始狀態(tài)的第三個空格),從而初始狀態(tài)的第二個空格被跳過了,初始第三個空格被刪除,接著后面的元素又再次前移(變成['空格','12','23']),指針指向新列表的第三個元素,即初始狀態(tài)的第5個元素23,然后23被刪除了,因此只剩下['空格','12']

如果想排除初始列表中的部分元素,如何實現(xiàn)?

由上面的情況知道,在遍歷列表的同時對列表執(zhí)行刪除操作,會造成意外的結果,那么對初始列表進行遍歷,對初始的列表的副本執(zhí)行刪除操作呢?


以上結果顯示,沒有得到預期效果。為什么?

問題出在copy=ls這一句,這里僅僅是使得copy與ls指向了同一片內(nèi)存(即淺拷貝,shallow copy),并沒有執(zhí)行【開辟一片新內(nèi)存,并且ls內(nèi)存中的內(nèi)容復制到新內(nèi)存,然后使copy指向新開辟的內(nèi)存,即深拷貝,deep copy】這一系列操作。因此對copy執(zhí)行的remove操作,和對遍歷ls列表,實質(zhì)上還是都是針對同一片內(nèi)存進行操作,因此結果上一個例子類似。

若想解決這一問題,有3個辦法法:

(1)

ls=[' ',' ',' ','12','23','abc','aa']
copy=[' ',' ',' ','12','23','abc','aa']

 

這一辦法對于已知列表的所有元素,且元素數(shù)量較少,結構較簡單時可行,其他情況下不可行。

(2)引入copy模塊的deepcopy方法:

(3)另外準備一個空列表,遍歷初始列表時,將符合條件的元素逐一加入到空列表當中(利用列表的append方法)。

這種方法,思路上與remove方法相反,但執(zhí)行的操作差不多,時間復雜度也與remove方法差不多,無需引入copy模塊。

另外,對于列表的remove方法,python基礎教程第二版給出的說明是:

remove方法用于移除列表中某個值的第一個匹配項:

>>>x=['to','be','or','not','to','be']

>>>x.remove('be')

>>>x

['to','or','not','to','be']

到此這篇關于python中remove的一些坑小結的文章就介紹到這了,更多相關python中remove的坑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解python里的命名規(guī)范

    詳解python里的命名規(guī)范

    這篇文章主要介紹了詳解python里的命名規(guī)范,命名應當盡量使用全拼寫的單詞,縮寫的情況文章中也給大家提到,需要的朋友參考下吧
    2018-07-07
  • Python中的sorted函數(shù)應用及文件操作詳解

    Python中的sorted函數(shù)應用及文件操作詳解

    這篇文章主要介紹了Python中的sorted函數(shù)應用及文件操作詳解,python只能將字符串寫入到文本文件,要將數(shù)值數(shù)據(jù)存儲到文本本件中,必須先試用函數(shù)str()將其轉(zhuǎn)換為字符串格式,需要的朋友可以參考下
    2023-12-12
  • python實現(xiàn)音樂下載器

    python實現(xiàn)音樂下載器

    這篇文章主要為大家詳細介紹了python實現(xiàn)音樂下載器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python繪制字符畫視頻的示例代碼

    python繪制字符畫視頻的示例代碼

    網(wǎng)上有很多的字符畫,看起來很炫酷,本文就通過一則示例實現(xiàn)字符畫視頻,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Python字典和列表性能之間的比較

    Python字典和列表性能之間的比較

    今天給大家介紹的是Python列表和字典的相關知識,文中對Python字典和列表的性能作了充分的比較,好奇的小伙伴們一起來看看吧,需要的朋友可以參考下
    2021-06-06
  • Python 使用requests模塊發(fā)送GET和POST請求的實現(xiàn)代碼

    Python 使用requests模塊發(fā)送GET和POST請求的實現(xiàn)代碼

    這篇文章主要介紹了Python 使用requests模塊發(fā)送GET和POST請求的實現(xiàn)代碼,需要的朋友可以參考下
    2016-09-09
  • Python統(tǒng)計文本詞匯出現(xiàn)次數(shù)的實例代碼

    Python統(tǒng)計文本詞匯出現(xiàn)次數(shù)的實例代碼

    這篇文章主要介紹了Python統(tǒng)計文本詞匯出現(xiàn)次數(shù),這種問題在統(tǒng)計文本詞匯的次數(shù)時經(jīng)常會遇到,今天給大家分享解決方案,通過實例代碼給大家講解,需要的朋友可以參考下
    2020-02-02
  • Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    Django發(fā)送郵件和itsdangerous模塊的配合使用解析

    這篇文章主要介紹了Django發(fā)送郵件和itsdangerous模塊的配合使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • python-地圖可視化組件folium的操作

    python-地圖可視化組件folium的操作

    這篇文章主要介紹了python-地圖可視化組件folium的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Python線程池thread?pool創(chuàng)建使用及實例代碼分享

    Python線程池thread?pool創(chuàng)建使用及實例代碼分享

    這篇文章主要介紹了Python線程池(thread?pool)創(chuàng)建使用及實例代碼分享,文章圍繞主題展開詳細的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06

最新評論

巴南区| 宁波市| 枞阳县| 封丘县| 西盟| 镇巴县| 巴林右旗| 平谷区| 镇平县| 易门县| 泰州市| 清徐县| 疏附县| 辉南县| 武汉市| 祁东县| 南岸区| 濉溪县| 江阴市| 沧州市| 三门峡市| 武义县| 彭泽县| 景德镇市| 潜山县| 治多县| 旬邑县| 陕西省| 昆明市| 固始县| 襄城县| 靖远县| 韶关市| 安平县| 兴山县| 石林| 临武县| 罗城| 卓尼县| 平邑县| 金秀|