Python是一門擁有豐富數據類型的語言,而集合(set)是其中一個非常有用的數據類型。集合是一個無序、不重複的元素的容器,可以用來進行高效的數據存儲和刪除操作。下面將從多個方面闡述Python集合的使用方法和優點。
一、集合的創建和基本操作
集合可以用大括弧{}或者set()函數來創建,如下所示:
s1 = {1, 2, 3}
s2 = set([3, 4, 5])
注意,當使用大括弧{}創建集合時,若只輸入一個元素,則此時創建的是一個字典,而不是集合。同時,集合中的元素必須是可哈希的,即不可變對象。
集合可以進行的基本操作有:
- 添加元素:使用add()方法
- 刪除元素:使用remove()方法(如果元素不存在會拋出異常)、discard()方法(元素不存在時不會拋出異常)
- 求交集、並集、差集:使用&、|、-運算符
具體示例如下:
s1.add(4)
s1.remove(3)
s1.discard(5)
s3 = s1 & s2
s4 = s1 | s2
s5 = s1 - s2
二、集合的使用場景
集合的使用場景有很多,下面介紹其中的一些:
1. 數據去重
集合中的元素是不重複的,因此可以利用這個特性進行數據去重。
lst = [1, 2, 3, 3, 4, 5, 4]
s = set(lst)
lst2 = list(s)
上面的代碼可以將lst列表中的重複元素去除。
2. 快速判斷元素是否在集合中
集合的底層實現是基於哈希表的,因此在集合中查找元素的時間複雜度是O(1),非常快速。
s = {1, 2, 3, 4, 5}
if 3 in s:
print("3 is in set s")
上面的代碼可以快速地判斷元素3是否在集合s中。
3. 迭代操作
集合可以像列表一樣進行迭代操作。
s = {1, 2, 3, 4, 5}
for item in s:
print(item)
上面的代碼可以遍歷集合中的所有元素。
三、集合的優點
相對於列表、元組等其他數據類型,集合有以下一些優點:
1. 去重功能強大
如前所述,集合是一個無序、不重複的容器,可以進行高效的去重操作。
2. 查找元素速度快
集合底層的哈希表實現使得在集合中查找元素的速度非常快,尤其適合進行「是否存在」之類的操作。
3. 可以進行集合運算
集合可以進行交集、並集、差集等運算,方便進行數據處理。
4. 可以作為字典的鍵
集合中的元素必須是不可變對象,因此集合本身可以作為字典的鍵,這在一些場景下非常有用。
完整代碼示例
s1 = {1, 2, 3}
s2 = set([3, 4, 5])
s1.add(4)
s1.remove(3)
s1.discard(5)
s3 = s1 & s2
s4 = s1 | s2
s5 = s1 - s2
lst = [1, 2, 3, 3, 4, 5, 4]
s = set(lst)
lst2 = list(s)
s = {1, 2, 3, 4, 5}
if 3 in s:
print("3 is in set s")
s = {1, 2, 3, 4, 5}
for item in s:
print(item)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240414.html