欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python集合pop()函數(shù)使用方法詳解

 更新時間:2023年07月26日 10:29:09   作者:士別三日wyx  
這篇文章主要介紹了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'>

到此這篇關于Python集合pop()函數(shù)使用方法詳解的文章就介紹到這了,更多相關Python集合pop()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論