千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習站小程序
隨時隨地免費學(xué)習課程

當前位置:首頁  >  技術(shù)干貨  > python里面的set

python里面的set

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-18 14:28:08 1700288888

Python中的set是一種無序且不重復(fù)的數(shù)據(jù)類型,它可以用來存儲一組數(shù)據(jù),類似于數(shù)學(xué)中的集合。在Python中,set可以用花括號{}或者set()函數(shù)來創(chuàng)建,且元素之間用逗號隔開。例如:



# 創(chuàng)建一個set

my_set = {1, 2, 3, 4, 5}

print(my_set)

# 創(chuàng)建一個空的set

empty_set = set()

print(empty_set)


輸出結(jié)果為:



{1, 2, 3, 4, 5}

set()


Python中的set有哪些常用操作?


1. 添加元素


我們可以使用add()方法向set中添加一個元素,例如:



my_set = {1, 2, 3, 4, 5}

my_set.add(6)

print(my_set)


輸出結(jié)果為:



{1, 2, 3, 4, 5, 6}


2. 刪除元素


我們可以使用remove()方法從set中刪除一個元素,例如:



my_set = {1, 2, 3, 4, 5}

my_set.remove(3)

print(my_set)


輸出結(jié)果為:



{1, 2, 4, 5}


3. 求交集、并集和差集


我們可以使用&、|和-操作符來求兩個set的交集、并集和差集,例如:



set1 = {1, 2, 3, 4, 5}

set2 = {4, 5, 6, 7, 8}

# 求交集

print(set1 & set2)

# 求并集

print(set1 | set2)

# 求差集

print(set1 - set2)


輸出結(jié)果為:



{4, 5}

{1, 2, 3, 4, 5, 6, 7, 8}

{1, 2, 3}


4. 判斷元素是否在set中


我們可以使用in關(guān)鍵字來判斷一個元素是否在set中,例如:



my_set = {1, 2, 3, 4, 5}

print(3 in my_set)

print(6 in my_set)


輸出結(jié)果為:



True

False


5. 求set的長度


我們可以使用len()函數(shù)來求一個set的長度,例如:



my_set = {1, 2, 3, 4, 5}

print(len(my_set))


輸出結(jié)果為:




Python中的set有哪些特點?


1. set中的元素是無序的,不能通過下標來訪問元素。


2. set中的元素是不重復(fù)的,如果添加一個已經(jīng)存在的元素,set不會產(chǎn)生任何效果。


3. set中的元素必須是可哈希的,即不可變的。因為set是基于哈希表實現(xiàn)的,如果元素是可變的,那么在哈希表中就無法確定元素的位置。


4. set比list和tuple的查找速度更快,因為set是基于哈希表實現(xiàn)的,查找一個元素的時間復(fù)雜度為O(1)。


5. set比list和tuple的內(nèi)存占用更大,因為set需要維護哈希表的結(jié)構(gòu),而list和tuple只需要維護一個線性的結(jié)構(gòu)。


set的應(yīng)用場景有哪些?


1. 去重


set最常用的應(yīng)用場景就是去重,例如:



my_list = [1, 2, 3, 4, 5, 2, 3, 4]


my_set = set(my_list)


print(my_set)



輸出結(jié)果為:



{1, 2, 3, 4, 5}



2. 判斷兩個集合是否有交集


我們可以使用&操作符來判斷兩個集合是否有交集,例如:



set1 = {1, 2, 3, 4, 5}


set2 = {4, 5, 6, 7, 8}


if set1 & set2:


print("兩個集合有交集")


else:


print("兩個集合沒有交集")



輸出結(jié)果為:



兩個集合有交集



3. 快速查找


由于set是基于哈希表實現(xiàn)的,所以在需要快速查找元素的場景下,set是一個很好的選擇,例如:



my_set = {1, 2, 3, 4, 5}


if 3 in my_set:


print("3在集合中")


else:


print("3不在集合中")



輸出結(jié)果為:



3在集合中



Python中的set是一個非常有用的數(shù)據(jù)類型,它可以用來存儲一組數(shù)據(jù),并且具有去重、快速查找、判斷兩個集合是否有交集等功能。在使用set時需要注意元素必須是可哈希的,且set中的元素是無序的、不重復(fù)的。


聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT