python列表pop
『壹』 python中pop函數有什麼用
方法pop()從列表中刪除一個元素(默認為列表的最後一個元素),並返回這一個元素,也就是說,利用pop()將元素從列表中刪除後,你能接著使用它的值。刪除列表中任意位置的元素時,只需在()中指定要刪除元素的索引即可。使用pop()後,被彈出的元素就不在列表中了。
『貳』 Python 中刪除列表元素的三種方法
列表基本上是 Python 中最常用的數據結構之一了,並且刪除操作也是經常使用的。
那到底有哪些方法可以刪除列表中的元素呢?這篇文章就來總結一下。
一共有三種方法,分別是 remove , pop 和 del ,下面來詳細說明。
remove 是從列表中刪除指定的元素,參數是 value。
舉個例子:
需要注意, remove 方法沒有返回值,而且如果刪除的元素不在列表中的話,會發生報錯。
pop 是刪除指定索引位置的元素,參數是 index。如果不指定索引,默認刪除列表最後一個元素。
pop 方法是有返回值的,如果刪除索引超出列表范圍也會報錯。
del 一般用在字典比較多,不過也可以用在列表上。
直接傳元素值是不行的,會報錯:
del 還可以刪除整個列表:
以上就是本文的全部內容,如果覺得還不錯的話,歡迎 點贊 , 轉發 和 關注 ,感謝支持。
推薦閱讀:
『叄』 Python 用pop()刪除列表元素時為什麼會隔一個元素
不是隔一個元素
是因為你已經刪掉前面的一個對應的位置也就變了。
比如a=['媽媽','爸爸','奶奶','爺爺','姐夫','毛珊','毛豆','姐姐','姑姑','姑父',"霖霖']
此時a[2]為'奶奶' ,a[3]為'爺爺'
a.pop(2)
那麼a就變成了
['媽媽','爸爸','爺爺','姐夫','毛珊','毛豆','姐姐','姑姑','姑父',"霖霖']
此次a[2]為'爺爺',a[3]為'姐夫'
所以如果你想依次刪掉對應的幾個比如'奶奶','爺爺','姐夫','毛珊'
你可以從後往前刪,這樣前面的位置不受影響
a.pop(5)
a.pop(4)
a.pop(3)
a.pop(2)
『肆』 Python 列表內存淺析
序列是Python中最基本的數據結構。序列是一種數據存儲方式,用來存儲一系列的數據。
在內存中,序列就是一塊用來存放多個值的連續的內存空間。比如一個整數序列[10,20,30,40]
序列中的每個元素都分配一個數字 - 它的位置,或索引。第一個索引是0,第二個索引是1,依此類推。
列表:用於存儲任意數目、任意類型的數據集合。
列表是內置可變序列,是包含多個元素的有序連續的內存空間。列表定義的標准語法格式:
其中,10,20,30,40 這些稱為:列表a的元素。
列表中的元素可以各不相同,可以是任意類型。比如:a = [10,20,"abc",True,[]]
當列表增加元素時,列表會自動進行內存管理,減少了程序員的負擔。但是列表元素大量移動,效率低所以一般建議在尾部添加。
本地電腦運行結果:
列表是可變數據類型,地址不變,值可變。因此,添加新的值之後,地址也是不變的。
解析:在索引2處要引用50這個元素
申請了8個內存空間但是list實際用來存儲元素只使用了其中5個內存空間
insert的時間復雜度是O(n)
pop () 方法 刪除並返回指定位置的元素,如果未指定位置則默認操作
pop () 方法 刪除並返回指定位置的元素,如果未指定位置則默認操作
結果運行:
『伍』 Python 列表
是不是這個list讓你感覺有些困擾呢,你看一下我下面的表示方式:
你的list和我的abc都是表示一個列表名。
del abc[1]:調用系統方法del,刪除列表abc中索引為1的項;
abc.pop():調用列表(這里為abc)本身的方法pop(),刪除abc列表的最後一項。
abc[1]中用方括弧是列表的索引操作,為列表自身的規則;pop()中也可以傳入參數用於表示索引位置,但此處為向方法內傳入位置參數。
方法來源不一樣,使用規則有差別。
『陸』 python從列表中刪除元素
有很多種方法都能實現從列表中刪除元素。
方法一:remove(具體的元素),該函數可以刪除列表中某個值的第一個匹配項。
方法二:使用pop(元素位置)來刪除,pop()還可以接著使用。
方法三:使用del關鍵字根據索引來刪除元素。
『柒』 四、 python中的數據類型——列表
列表是一種有序的集合,有點類似c裡面的數組。它的特點是,可以隨時向裡面添加或刪除其中的元素,在python中經常用來存放數據。列表的特點是中括弧,內部元素用逗號隔開。
在這個列表中,可以放進去任何元素,不論你的元素是字元串、整型、浮點型、還是布爾值、空值,包括列表什麼的,都可以放進去。
元素與元素之間,用逗號隔開。
列表會為每個元素分配序號,這個序號代表它的位置,稱為索引(index),第一個元素的位置是0,第二個元素是1,以此類推。
使用索引獲取列表中的值時,需要使用中括弧來訪問,在中括弧前面加上列表名,中括弧內部是元素的索引。
0代表第一個元素的位置,1代表第二個,-1代表倒數第一個,-2代表倒數第二個
使用 len() 函數,可以查看列表裡面有多少個元素
在python中,列表的操作是非常的靈活的,我們可以向其中添加或刪除元素。
添加使用 list.append() 函數
list.append() 函數是將元素插入到列表的末尾,當我們想在特定位置插入元素時可以使用 list.insert() 函數
list.insert() 函數接受兩個參數,第一個參數是插入位置,第二個參數是要插入的元素。
需要注意的是,在使用append和insert時,必須在前面註明要操作的列表。就像上面的例子,我們要操作classmates這個列表,所以必須寫成 classmates.append() 或 classmates.insert() ,如果不這么寫,計算機就不知道你要往哪個列表中加入元素。
沒有特殊情況的話,推薦使用append()函數添加元素,因為使用append的時候,元素默認加在列表尾部,不會造成其他元素索引值的改變。如果使用insert的話,就像上面的insert(1,'Tom'),在位置1插入'Tom'後,Tom後面所有的元素,索引值都加了一個1,列表中元素越多,受影響的程度越大,因此使用append()函數要比insert()函數更快。
刪除列表中元素的方法有三種
del後面需要用索引的方式表明要刪除的元素,也就是上面的例子,names[1]代表names中的第二個元素,使用del即可刪除
list.pop() 函數與del差不多,都是使用索引值進行刪除,只不過寫法不同。
我們可以發現,執行 names.pop(1) 後,python shell列印出了第二個元素的值,也就是我們要刪除的那個值,這是因為 pop() 這個函數,是有返回值的,有時候我們需要使用這個值,這個時候就可以用變數存起來。
這樣我們就可以通過調用a而使用剛才刪掉的元素了。
list.remove() 函數的作用是刪除第一個匹配的元素,上面的例子中,names這個列表裡面,有兩個'Bob',remove函數只刪除了第一個'Bob'。這就是 list.remove() 函數的特點。
有時候我們想使用列表的前10個元素,或者前n個元素,這時候就應該使用列表的切片。
切片和索引類似,都是使用中括弧,區別是,索引中的中括弧裡面只有一個數,而切片不同。切片是切割列表,形成切割下來的部分形成新的列表。
切片: list[start:end:[step=1]] ,這就是切片的表達式,要求start和end兩者必須有一個,step不是可以不指定,不指定的時候默認為1。
切片該怎麼理解呢,start就是開始的位置,end就是結束的位置。切片有個特點是「取前不取後」,看上面那個例子可以發現,1作為start,3作為end,1代表第二個元素,3代表第四個元素,列表切片的時候,是不取後面的那個數字對應的元素的,也就是不取第四個元素,所以names[1:3]只取了第二個元素和第三個元素,這就是所謂的取前不取後。
再看下一個例子。
當不指定start或者end的時候,start默認為0,end默認為最後一個元素的索引值+1,因為「取前不取後」,要想取到最後一個元素,必須加個1才行。
上例中,用 len(numbers) 表示了最後一個元素的索引值,因為索引值從0開始,最後一個元素的索引值一定是列表內元素個數-1,根據「取前不取後」,在end位置上的數字應該+1,所以最後就等於 len(numbers) 了。
當不設定start和end的時候,就默認取所有的元素了。
當加入step,這個選項後,step代表步長,默認為1,設定成2的時候,就是隔一個取一個,設定成3時就是隔兩個取一個。
上例中,第一個切片,start和end均未設定,因此從第一個元素開始,隔一個取一個,得到了所有奇數位置的元素。
第二個切片,start設定為了1,因此取了所有偶數位置的元素。
3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False
更多關於列表的信息可以通過使用 help(list) 查看幫助文檔。