1. 程式人生 > 實用技巧 >python乾貨:pop()函式的用法 [彈出刪除功能]

python乾貨:pop()函式的用法 [彈出刪除功能]

什麼是彈出功能?

使用pop()刪除元素是將元素從列表中刪彈出,術語彈出(pop)源自這樣的類比:列表像一個棧,而刪除列表末尾的元素就相當於彈出棧頂元素

方法pop()刪除並返回列表中的最後一個元素。 有一個可選引數,它是要從列表中刪除的元素的索引。 如果未指定索引,則a.pop()刪除並返回列表中的最後一項。 如果傳遞給pop()方法的索引不在範圍內,則會引發IndexError:pop index out of range異常。

這裡需要注意的是,當我們使用pop函式時,當後面的括號沒有寫位置的時候,系統預設是選擇最後的一個位置進行刪除的。

利用(pop)將刪除的列表元素進行儲存

motorcycles=['honda','yamaha','suzuki']
print(motorcycles)#定義並列印列表元素
popped_motorcycles=motorcycles.pop()#將刪除的資料儲存在popped_中
print(motorcycles)
print(popped_motorcycles)
複製程式碼

輸出:

pop() 函式用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值。

語法:list.pop(obj=list[-1])       //預設為 index=-1,刪除最後一個列表值。
複製程式碼

obj -- 可選引數,要移除列表元素的物件。

該方法返回從列表中移除的元素物件。

sentence=['All', 'good', 'things', 'come', 'to' ,'those', 'who', 'wait.']

print("預設為 index=-1,刪除最後一個列表值:",sentence.pop(-1),"\n")
print("預設刪除最後一個列表值: ",sentence.pop(),"\n")
print("刪除第一個元素:",sentence.pop(0),"\n")
print("刪除第三個元素:",sentence.pop(2),"\n")
print("輸出剩餘元素:",sentence)
複製程式碼

執行結果為:(該方法返回從列表中移除的元素物件。)每執行print()一下就移除一個

二、 單獨執行每一行print()函式:

sentence=['All','good','things','come','to','those','who','wait']
print("預設為 index=-1,刪除最後一個列表值:",sentence.pop(-1),"\n")
sentence1=['All','good','things','come','to','those','who','wait']
print("預設刪除最後一個列表值:",sentence1.pop(),"\n")
sentence2=['All','good','things','come','to','those','who','wait']
print("刪除第一個元素:",sentence2.pop(0),"\n")
sentence3=['All','good','things','come','to','those','who','wait']
print("刪除第三個元素:",sentence3.pop(1),"\n")
複製程式碼

執行結果如下:

基本堆疊功能

pop()方法通常與append()結合使用,以在Python應用程式中實現基本的堆疊功能。

stack = []
 
for i in range(5):
    stack.append(i)
 
while len(stack):
    print(stack.pop())
複製程式碼

List方法非常容易地將列表用作堆疊,其中新增的最後一個元素是檢索到的第一個元素(“後入先出”)。若要將項新增到堆疊頂部,請使用append()。若要從堆疊頂部檢索項,請使用pop()沒有明確的索引。例如:

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
複製程式碼

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理

想要獲取更多Python學習資料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起來學習討論吧!