Python中的set是一種無序且不重復(fù)的數(shù)據(jù)類型,它可以用來存儲(chǔ)一組數(shù)據(jù),類似于數(shù)學(xué)中的集合。在Python中,set可以用花括號(hào){}或者set()函數(shù)來創(chuàng)建,且元素之間用逗號(hào)隔開。例如:
# 創(chuàng)建一個(gè)set
my_set = {1, 2, 3, 4, 5}
print(my_set)
# 創(chuàng)建一個(gè)空的set
empty_set = set()
print(empty_set)
輸出結(jié)果為:
{1, 2, 3, 4, 5}
set()
Python中的set有哪些常用操作?
1. 添加元素
我們可以使用add()方法向set中添加一個(gè)元素,例如:
my_set = {1, 2, 3, 4, 5}
my_set.add(6)
print(my_set)
輸出結(jié)果為:
{1, 2, 3, 4, 5, 6}
2. 刪除元素
我們可以使用remove()方法從set中刪除一個(gè)元素,例如:
my_set = {1, 2, 3, 4, 5}
my_set.remove(3)
print(my_set)
輸出結(jié)果為:
{1, 2, 4, 5}
3. 求交集、并集和差集
我們可以使用&、|和-操作符來求兩個(gè)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)鍵字來判斷一個(gè)元素是否在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ù)來求一個(gè)set的長度,例如:
my_set = {1, 2, 3, 4, 5}
print(len(my_set))
輸出結(jié)果為:
Python中的set有哪些特點(diǎn)?
1. set中的元素是無序的,不能通過下標(biāo)來訪問元素。
2. set中的元素是不重復(fù)的,如果添加一個(gè)已經(jīng)存在的元素,set不會(huì)產(chǎn)生任何效果。
3. set中的元素必須是可哈希的,即不可變的。因?yàn)閟et是基于哈希表實(shí)現(xiàn)的,如果元素是可變的,那么在哈希表中就無法確定元素的位置。
4. set比list和tuple的查找速度更快,因?yàn)閟et是基于哈希表實(shí)現(xiàn)的,查找一個(gè)元素的時(shí)間復(fù)雜度為O(1)。
5. set比list和tuple的內(nèi)存占用更大,因?yàn)閟et需要維護(hù)哈希表的結(jié)構(gòu),而list和tuple只需要維護(hù)一個(gè)線性的結(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. 判斷兩個(gè)集合是否有交集
我們可以使用&操作符來判斷兩個(gè)集合是否有交集,例如:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
if set1 & set2:
print("兩個(gè)集合有交集")
else:
print("兩個(gè)集合沒有交集")
輸出結(jié)果為:
兩個(gè)集合有交集
3. 快速查找
由于set是基于哈希表實(shí)現(xiàn)的,所以在需要快速查找元素的場景下,set是一個(gè)很好的選擇,例如:
my_set = {1, 2, 3, 4, 5}
if 3 in my_set:
print("3在集合中")
else:
print("3不在集合中")
輸出結(jié)果為:
3在集合中
Python中的set是一個(gè)非常有用的數(shù)據(jù)類型,它可以用來存儲(chǔ)一組數(shù)據(jù),并且具有去重、快速查找、判斷兩個(gè)集合是否有交集等功能。在使用set時(shí)需要注意元素必須是可哈希的,且set中的元素是無序的、不重復(fù)的。