Python中的set是一種無序且不重復的數(shù)據(jù)類型,它可以用來存儲一組數(shù)據(jù),類似于數(shù)學中的集合。在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關鍵字來判斷一個元素是否在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中的元素是不重復的,如果添加一個已經(jīng)存在的元素,set不會產(chǎn)生任何效果。
3. set中的元素必須是可哈希的,即不可變的。因為set是基于哈希表實現(xiàn)的,如果元素是可變的,那么在哈希表中就無法確定元素的位置。
4. set比list和tuple的查找速度更快,因為set是基于哈希表實現(xiàn)的,查找一個元素的時間復雜度為O(1)。
5. set比list和tuple的內(nèi)存占用更大,因為set需要維護哈希表的結(jié)構,而list和tuple只需要維護一個線性的結(jié)構。
set的應用場景有哪些?
1. 去重
set最常用的應用場景就是去重,例如:
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中的元素是無序的、不重復的。