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

深入了解Python中pop和remove的使用方法

 更新時間:2018年01月09日 14:15:30   作者:DebugMyself  
這篇文章主要介紹了深入了解Python中pop和remove的使用方法,具有一定借鑒價值,需要的朋友可以參考下

Python關于刪除list中的某個元素,一般有兩種方法,pop()和remove()。

remove() 函數(shù)用于移除列表中某個值的第一個匹配項。

remove()方法語法:

list.remove(obj)

pop() 函數(shù)用于移除列表中的一個元素(默認最后一個元素),并且返回該元素的值。

pop()方法語法:

list.pop(obj=list[-1])

如果刪除單個元素,使用基本沒有什么問題,具體如下。

1.pop()方法,傳遞的是待刪除元素的index:

x = ['a', 'b', 'c', 'd']
x.pop(2)
print x
 
------------------
result:
['a', 'b', 'd']

2. remove()傳遞待刪除元素,如果多個元素一樣,默認刪除第一個:

x = ['a', 'b', 'a', 'c', 'd']
x.remove('a')
print x
 
-----------------
result:
['b', 'a', 'c', 'd']

如果要循環(huán)刪除符合某個條件的元素,慎用!!

x = ['a', 'b', 'c', 'd']
y = ['b', 'c']
for i in x:
  if i in y:
    x.remove(i)
print x
 
-----------------------
result:
['a', 'c', 'd']
x = ['a', 'b', 'c', 'd']
y = ['b', 'c']
for i in x:
  if i in y:
    idx = x.index(i)
    x.pop(idx)
print x
 
--------------
result:
['a', 'c', 'd']

我認為出現(xiàn)這種情況的主要原因是,pop和remove方法屬于‘破壞性操作‘(ps:原諒我自創(chuàng)的定義),x.remove()后,內存中原來存放x的位置已經釋放,又重新申請了內存存放新的x??梢岳斫鉃閤已經不是原來的x了,而for循環(huán)中傳遞的x還是原來x在內存中的位置,所以在x.remove(i)后,for循環(huán)找不到x了,后面的刪除即無法完成。為了完成循環(huán)刪除list元素的問題,我推薦用下面的方法。

  感謝也許小念舊 的提醒,原先的解釋是錯誤的,造成上述現(xiàn)象的原因是因為,Python中for i in list是用迭代器實現(xiàn),內部隱藏了記錄當前迭代器的狀態(tài),而remove方法刪除了當前元素后,迭代器自動指到下一個元素,原先的list在內存中的位置并未改變。用下面方法可以避免。

x = ['a', 'b', 'c', 'd']
y = ['b', 'c']
x_new = []
for i in x:
  if i not in y:
    x_new.append(i)
x = x_new
print x
 
----------------------
result:
['a', 'd']

同時, 可可可心一家 提出把for i in x:改成for i in x[:]:也可以實現(xiàn),這是因為x[:]與x不是同一個list,相當與把x的內存拷貝到一塊新的內存,當對x做remove操作的時候,新的內存list并沒有受影響。

總結

以上就是本文關于深入了解Python中pop和remove的使用方法的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Python入門之三角函數(shù)全解【收藏】》

簡單了解Python中的幾種函數(shù)

python正則表達式re之compile函數(shù)解析

如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • python爬蟲智能翻頁批量下載文件的實例詳解

    python爬蟲智能翻頁批量下載文件的實例詳解

    在本篇文章里小編給大家整理的是一篇關于python爬蟲智能翻頁批量下載文件的實例詳解內容,有興趣的朋友們可以學習下。
    2021-02-02
  • Python實現(xiàn)求笛卡爾乘積的方法

    Python實現(xiàn)求笛卡爾乘積的方法

    這篇文章主要介紹了Python實現(xiàn)求笛卡爾乘積的方法,結合實例形式分析了Python計算笛卡爾乘積的原理與實現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • Python常用的json標準庫

    Python常用的json標準庫

    今天小編就為大家分享一篇關于Python常用的json標準庫,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 最新pycharm安裝教程

    最新pycharm安裝教程

    這篇文章主要介紹了最新pycharm安裝教程,需要的朋友可以參考下
    2020-11-11
  • python pandas消除空值和空格以及 Nan數(shù)據替換方法

    python pandas消除空值和空格以及 Nan數(shù)據替換方法

    今天小編就為大家分享一篇python pandas消除空值和空格以及 Nan數(shù)據替換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Tensorflow的常用矩陣生成方式

    Tensorflow的常用矩陣生成方式

    今天小編就為大家分享一篇Tensorflow的常用矩陣生成方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • numpy求平均值的維度設定的例子

    numpy求平均值的維度設定的例子

    今天小編就為大家分享一篇numpy求平均值的維度設定的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Yolov5訓練意外中斷后如何接續(xù)訓練詳解

    Yolov5訓練意外中斷后如何接續(xù)訓練詳解

    目標檢測是計算機視覺上的一個重要任務,下面這篇文章主要給大家介紹了關于Yolov5訓練意外中斷后如何接續(xù)訓練的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Python中matplotlib庫安裝失敗的經驗總結(附pycharm配置anaconda)

    Python中matplotlib庫安裝失敗的經驗總結(附pycharm配置anaconda)

    最近根據領導布置的學習任務,開始學習python中的matplotlib,朋友告訴我這個很簡單,然而剛踏入安裝的門檻,就遇到了安裝不成功的問題,下面這篇文章主要給大家介紹了關于Python中matplotlib庫安裝失敗的經驗總結,需要的朋友可以參考下
    2022-08-08
  • Python常用標準庫之os模塊功能

    Python常用標準庫之os模塊功能

    這篇文章主要介紹了Python常用標準庫之os模塊功能,os模塊的主要功能有系統(tǒng)相關、目錄及文件操作、執(zhí)行命令和管理進程,其中的進程管理功能主要是Linux相關的,此處不做討論,對Python標準庫os相關知識感興趣的朋友跟隨小編一起看看吧
    2022-11-11

最新評論

东丽区| 广灵县| 福贡县| 五家渠市| 油尖旺区| 丹巴县| 彩票| 新沂市| 和田县| 盐山县| 辽阳市| 永嘉县| 仁寿县| 理塘县| 乌鲁木齐县| 永川市| 商南县| 二连浩特市| 慈利县| 扎囊县| 南涧| 赤城县| 客服| 阿图什市| 集安市| 藁城市| 清镇市| 梓潼县| 麻江县| 桃江县| 本溪市| 读书| 秀山| 岳阳市| 盘山县| 格尔木市| 深圳市| 鸡东县| 包头市| 花莲市| 大冶市|