亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Python中Remove函數(shù)的用法討論

 更新時間:2020年12月11日 11:53:00   作者:代碼穿越  
這篇文章主要介紹了基于Python中Remove函數(shù)的用法討論,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前幾天在進行寫程序時碰到這樣一個問題

a=['a','b','c','d']

b=['c','d','e','f']

需要將數(shù)組a中元素,在數(shù)組b中出現(xiàn)過都刪除。第一次寫出程序如下:

a=['a','b','c','d']
b=['c','d','e','f']
for x in a:
 if x in b:
 a.remove(x)
print (a)

最后的輸出結(jié)果為

出現(xiàn)這樣的結(jié)果,當(dāng)時感覺很詫異。但立馬細細一想,立馬明白了其中的原因。

當(dāng)x='c'時,此時滿足if條件語句,執(zhí)行if下的語句:a.remove(x),也就是將'c'元素從a數(shù)組中刪除。

刪除之后,remove函數(shù)并沒有執(zhí)行結(jié)束。而是將a數(shù)組中索引號大于刪除元素索引號的所有元素依次前一位。

此時,x指向a[2],a數(shù)組當(dāng)前的狀態(tài)為:['a','b','d'],a[2]中存儲的為元素'd'。

remove函數(shù)返回后,繼續(xù)執(zhí)行for循環(huán),x指向數(shù)組的下一個索引。

因此導(dǎo)致了'd'元素沒有與數(shù)組b進行比較。

后續(xù),將程序進行了如下修改:

a=['a','b','c','d']
c=['a','b','c','d']
b=['c','d','e','f']
 
for x in a:
 if x in b:
 c.remove(x)
print (c)

程序運行結(jié)果如下:

雖然問題不是很難,但是這個細節(jié)問題一定要把握。

補充知識:Python列表的remove方法的注意事項

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

解釋:

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

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

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

以上結(jié)果顯示,沒有得到預(yù)期效果。為什么?

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

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

(1)

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

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

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

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

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

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

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

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

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

>>>x=['to','be','or','not','to','be']
>>>x.remove('be')
>>>x
['to','or','not','to','be']

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方歡迎留言討論,望不吝賜教。

相關(guān)文章

  • 詳解pandas映射與數(shù)據(jù)轉(zhuǎn)換

    詳解pandas映射與數(shù)據(jù)轉(zhuǎn)換

    這篇文章主要介紹了pandas映射與數(shù)據(jù)轉(zhuǎn)換的相關(guān)資料,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2021-01-01
  • pycharm上的python虛擬環(huán)境移到離線機器上的方法步驟

    pycharm上的python虛擬環(huán)境移到離線機器上的方法步驟

    本人在工作中需要在離線Windows環(huán)境中使用,本文主要介紹了pycharm上的python虛擬環(huán)境移到離線機器上的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2021-10-10
  • Python實現(xiàn)倉庫管理系統(tǒng)

    Python實現(xiàn)倉庫管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Python實現(xiàn)倉庫管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • pandas處理csv文件的方法步驟

    pandas處理csv文件的方法步驟

    這篇文章主要介紹了pandas處理csv文件的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python寫的Socks5協(xié)議代理服務(wù)器

    Python寫的Socks5協(xié)議代理服務(wù)器

    這篇文章主要介紹了Python寫的Socks5協(xié)議代理服務(wù)器,代碼來自網(wǎng)上,需要的朋友可以參考下
    2014-08-08
  • django中的setting最佳配置小結(jié)

    django中的setting最佳配置小結(jié)

    setting配置也經(jīng)常將一些配置混淆今天主要是介紹django中的setting最佳配置小結(jié),需要的朋友參考下吧
    2017-11-11
  • Python pygame 動畫游戲循環(huán)游戲時鐘實現(xiàn)原理

    Python pygame 動畫游戲循環(huán)游戲時鐘實現(xiàn)原理

    這篇文章主要為大家介紹了Python pygame 動畫游戲循環(huán)游戲時鐘實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Python必備技巧之集合Set的使用

    Python必備技巧之集合Set的使用

    在數(shù)學(xué)中,對集合的嚴(yán)格定義可能是抽象的且難以掌握。但實際上可以將集合簡單地認(rèn)為是定義明確的不同對象的集合,通常稱為元素或成員。Python 提供了一個內(nèi)置的集合類型來將對象分組到一個集合中,快跟隨小編一起學(xué)習(xí)一下吧
    2022-03-03
  • python把數(shù)據(jù)導(dǎo)出生成excel文件的方法小結(jié)

    python把數(shù)據(jù)導(dǎo)出生成excel文件的方法小結(jié)

    在Python中,將數(shù)據(jù)導(dǎo)出生成Excel文件,最常用的庫之一是openpyxl(用于處理.xlsx文件)和pandas,以下將分別介紹如何使用這兩個庫來生成Excel文件,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09
  • Python?VisPy庫高性能科學(xué)可視化圖形處理用法實例探究

    Python?VisPy庫高性能科學(xué)可視化圖形處理用法實例探究

    VisPy是一個用于高性能科學(xué)可視化的Python庫,它建立在現(xiàn)代圖形處理單元(GPU)上,旨在提供流暢、交互式的數(shù)據(jù)可視化體驗,本文將深入探討VisPy的基本概念、核心特性以及實際應(yīng)用場景,并通過豐富的示例代碼演示其強大的可視化能力
    2023-12-12

最新評論