python裡面pop,remove和del 三者的用法區別
首先,remove 是刪除首個符合條件的元素。並不是刪除特定的索引。如下例:
>>> a = [0, 2, 2, 3]
>>> a.remove(2)
>>> a
[0, 2, 3]
而對於 del 來說,它是根據索引(元素所在位置)來刪除的,如下例:
>>> a = [3, 2, 2, 1]
>>> del a[1]
[3, 2, 1]
第1個元素為a[0] --是以0開始計數的。則a[1]是指第2個元素,即裡面的值2.
del還可以刪除指定範圍內的值
a = [3,2,2,1]
del a[1,3]
print a
結果[3]
del還可以刪除整個列表
del a
pop返回的是你彈出的那個數值。
所以使用時要根據你的具體需求選用合適的方法
>>> a = [4, 3, 5]
>>> a.pop(1)
3
>>> a
[4, 5]
另外它們如果出錯,出錯模式也是不一樣的。注意看下面區別:
>>> a = [4, 5, 6] >>> a.remove(7) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list >>> del a[7] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range >>> a.pop(7) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: pop index out of range
相關推薦
python裡面pop,remove和del 三者的用法區別
首先,remove 是刪除首個符合條件的元素。並不是刪除特定的索引。如下例: >>> a = [0, 2, 2, 3] >>> a.remove(2) >>> a [0, 2, 3]
c#中陣列,ArrayList和List 三者的區別
在c#中,陣列在記憶體中是連續的,索引速度很快,賦值和修改也很簡單。string[] s=new string[2]; //賦值 s[0]="a"; s[1]="b"; //修改 s[1]="a1"; 但是陣列也有一些不足的地方,在資料的兩個資料
前端面試題(二):ES6中let,const和 var 三者的區別
let命令基本用法 在ES6中,新增了let命令,用於宣告變數,用來取代ES5中var命令,消除var宣告的變數的不合理,不嚴謹之處。const用於宣告常量。 讓我們來看看let和var的區別 1.let不存在變數提升 使用let宣告的變數,不會像
python:remove,pop和del方法的區別
這三種方法都是list的刪除方法,其中remove是針對可變列表的元素進行搜尋刪除,而pop和del是針對可變列表的下標進行搜尋刪除。具體區別如下: 1. remove remove(item)方法是直接對可變序中的元素進行檢索刪除,返回的是刪除後的列表,不
關於Rigidbody,Collider和CharacterController三者之間的關系和用法的總結
詭異 nor 觸發 回調函數 force body 想要 die 實現 Rigidbody:多用在“物體”上,因為“物體”都是“死”的,他們的運動一般都是靠物理系統。所以對於Rigidbody的移動,不要用Translate(),要用各種“力”, 比如:Rigidbody的
Queue介面分析:add和offer區別,remove和poll方法到底啥區別
往佇列中新增元素有兩個方法,分佈是add和offer方法,兩者的入參和返回值都一樣,或許很多同學都奇怪,為什麼,要有這兩個功能類似(都是新增元素),但方法名不一樣的方法,看看原始碼的註釋 以下為Queue介面中方法定義: ``` public interface Queue<E
【Python】split,strip和join的使用
文章目錄 split才是切割... 值得注意的是,split只能切割字串..不能切割列表,但是切割字元串出來的結果卻是列表... join的使用 join()函式 對字串的操作
分享一些Python裡面的迴圈語句和字串、佔位符、列表的基本運用
1.for迴圈和while迴圈的運用和區別 #布林值 isOk=True if isOk==True: print('ok') else: print('no ok') for x in range(100): print(x) #while 當。。。。時候 age=1
在python中矩陣維度, (a,)和 a 有什麼區別?
在python中矩陣維度, (a,)和 a 有什麼區別? 測試: import numpy as np trainx = np.linspace(-1, 1, 10) print(trainx.shape) print(trainx[0].shape) print(*trainx
第二章 Python語法基礎,Ipython和JupyterNotebooks
2.1 Python直譯器 Python是解釋性語言,直譯器同一時間只能執行一個程式或語句。 2.2 IPython基礎 執行Ipython Shell 執行Jupyter Notebooks Tab補全 自省:?;?? %run命令 中斷執行程式碼:Ctrl-
國外資深程式設計師的Python中類,靜態和抽象方法的權威總結
Python中方法的工作方式 方法是儲存在類屬性中的函式,你可以用下面這種方式宣告和訪問一個函式 >>> class Pizza(object): ... def __init__(self, size): ...
福利 | 零基礎學習Python量化交易,證書和工作一起拿 !(深圳)
文末有資料派獨家福利 投資界的人才需求 量化投資在中國已經進入到一個高速發展期。量化人才需求也成為眾多金融企業的關注。金融科技企業發現中國目前正面臨嚴重的金融科技專業人才短缺。而量化分析從業者,俗稱“寬客(Quants)”,正是金融科技人才的領軍者
Python中read()、readline()和readlines()三者間的區別和用法
前言 眾所周知在python中讀取檔案常用的三種方法:read(),readline(),readlines(),今天看專案是又忘記他們的區別了。以前看書的時候覺得這東西很簡單,一眼掃過,待到用時卻也只知道有這麼幾個方法,不懂得它的原理與用法。也許吧,沒有永遠的記憶,況且根
Python list.pop() | list.remove() 用法詳解
一、list.pop(index) 用於從列表中刪除元素,該語句還能返回被刪除的元素。 注意:index表示該元素的下標。 a = [0,1,2,3,4,5] print a.pop() # 輸出5
C#中數組、ArrayList和List三者的區別
collect comm 兩個 根據 -s lis 數據打包 功能 target 在C#中數組,ArrayList,List都能夠存儲一組對象,那麽這三者到底有什麽樣的區別呢。 數組 數組在C#中最早出現的。在內存中是連續存儲的,所以它的索引速度非常快,而且賦值
C++知識回顧之__stdcall、__cdcel和__fastcall三者的區別
進行 pan span number 適用於 編譯器 api num 處理 __stdcall、__cdecl和__fastcall是三種函數調用協議,函數調用協議會影響函數參數的入棧方式、棧內數據的清除方式、編譯器函數名的修飾規則等。 調用協議常用場合 __stdca
Java中的JDK,JRE和JVM之間的區別
run 編譯 java 發布 開發 特性 底層 應用程序 解釋 JDK(Java Development Kit)是針對Java開發員的產品,是整個Java的核心,包括了Java運行環境JRE、Java工具和Java基礎類庫。Java Runtime Environment
【轉載】form表單的兩種提交方式,submit和button的用法
按鈕 type ssid login false tex .get ons 轉載 1.當輸入用戶名和密碼為空的時候,需要判斷。這時候就用到了校驗用戶名和密碼,這個需要在jsp的前端頁面寫;有兩種方法,一種是用submit提交。一種是用button提交。方法一:在jsp的前端
Python 模塊調用和global的用法
python global python 現有兩個文件,一個的文件名為ideal.py,另一個為hub.py,兩者都在目錄modualsio裏。ideal的具體內容為:num = 3class Foo(object): global num def foo(self): retur
NAT,PAT和反向代理的區別?
natNAT分為靜態NAT,動態NAT,和PAT1、靜態NAT:就是私有ip和公網ip一對一的映射,端口號不變化,一般用於局域網上網。2、動態NAT:就是多個私有ip和多個公網ip(地址池)多對多的映射,端口號不變化,當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以采用動態轉換的方式。 3、PAT