Python集合pop()函數(shù)使用方法詳解
pop() 可以「隨機刪除」集合中的一個「元素」
語法
set.pop()
返回值
- 返回刪除的元素
實例:隨機刪除一個元素
set1 = {'zhangsan', 'lisi', 'wangsu'}
set1.pop()
print(set1)輸出:
{'lisi', 'zhangsan'}
從偽源碼(Python的內(nèi)置函數(shù)看不到源碼,只能看到函數(shù)介紹)中可以看到, pop() 會「刪除」并「返回」集合中的「元素」,如果集合為「空」,就會報錯 KeyError。

1、隨機刪除并不完全隨機
pop() 是基于HashMap實現(xiàn)的,它總是「刪除」集合中的「第一個元素」,由于集合是「無序」的,所以它看起來就像是「隨機」刪除元素。
1.1、純數(shù)字
當集合中的元素是「純數(shù)字」時,集合會按照從小到大的順序排列元素,「最小」的數(shù)值會別排在第一個,所以pop()時,會刪除最小的那個元素。
set1 = {1, 5, 3, 9, 2}
print('刪除前:', set1)
set1.pop()
print('刪除后:', set1)第一次執(zhí)行輸出:
刪除前: {1, 2, 3, 5, 9}
刪除后: {2, 3, 5, 9}
第二次執(zhí)行輸出:
刪除前: {1, 2, 3, 5, 9}
刪除后: {2, 3, 5, 9}
多執(zhí)行幾次,我們可以發(fā)現(xiàn), pop() 每次都刪除1,因為1是最小的,總是被排在第一個。
1.2、純字符
當集合中的元素是「純字符串」時,集合無法保證元素的排序,由于 pop() 總是刪除第一個元素,所以這種情況看起來就是隨機刪除。
set1 = {'aaa', 'bbb', 'ccc', 'ddd'}
print('刪除前:', set1)
set1.pop()
print('刪除后:', set1)第一次執(zhí)行輸出:
刪除前: {'ddd', 'bbb', 'aaa', 'ccc'}
刪除后: {'bbb', 'aaa', 'ccc'}
第二次執(zhí)行輸出:
刪除前: {'ddd', 'aaa', 'ccc', 'bbb'}
刪除后: {'aaa', 'ccc', 'bbb'}
多次執(zhí)行可以發(fā)現(xiàn),每次集合中的元素排序都是隨機的,而 pop() 也會 “隨機” 的刪除集合中的第一個元素。
1.3、混合情況
當集合中的元素有字符串、整形、元組等「混合」組合時,元素的排序會變得隨機,當然, pop() 仍然會固執(zhí)地刪除第一個元素。
set1 = {(1, 2), (5, 6), (9, 8), (3, 4), 'aaa', 1, 2}
print('刪除前:', set1)
set1.pop()
print('刪除后:', set1)輸出:
刪除前: {'aaa', 1, 2, (1, 2), (3, 4), (9, 8), (5, 6)}
刪除后: {1, 2, (1, 2), (3, 4), (9, 8), (5, 6)}
2、空集合
使用 pop() 的集合,必須有元素,「空集合」會報錯 KeyError。
set2 = set() set2.pop()
輸出:

這種格式的‘空集合’ 也會報錯
set1 = {}
set1.pop()輸出:

實際上,這并不是集合,而是字典
set1 = {}
print(type(set1))輸出:
<class 'dict'>
到此這篇關(guān)于Python集合pop()函數(shù)使用方法詳解的文章就介紹到這了,更多相關(guān)Python集合pop()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習的目標及好處
這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習的目標實現(xiàn)代碼及好處介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
python os模塊在系統(tǒng)管理中的應(yīng)用
這篇文章主要介紹了python os模塊在系統(tǒng)管理中的應(yīng)用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
Python爬取網(wǎng)頁的所有內(nèi)外鏈的代碼
這篇文章主要介紹了Python爬取網(wǎng)頁的所有內(nèi)外鏈,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
解決python 出現(xiàn)unknown encoding: idna 的問題
這篇文章主要介紹了解決python出現(xiàn) unknown encoding: idna 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python讀寫及備份oracle數(shù)據(jù)庫操作示例
這篇文章主要介紹了Python讀寫及備份oracle數(shù)據(jù)庫操作,結(jié)合實例形式分析了Python針對Oracle數(shù)據(jù)庫操作的相關(guān)庫安裝,以及使用cx_Oracle與pandas庫進行Oracle數(shù)據(jù)庫的查詢、插入、備份等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-05-05
Python實現(xiàn)Mysql數(shù)據(jù)庫連接池實例詳解
這篇文章主要介紹了Python實現(xiàn)Mysql數(shù)據(jù)庫連接池實例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04

