Python Set

在這個教程中,我們將學習Python Set。在我們之前的文章中,我們學習了Python字符串。你可以從這裡學習。

Python Set

Python Set是一個無序的唯一元素集合。假設你有一個列表,並且你只需要列表的唯一項,你可以使用Python Set。同樣地,如果你只需要來自輸入的唯一項,Python set可以幫助你做到這一點。你可以添加或刪除其中的項目。你可以通過將元素放在花括號之間來初始化一個集合。像其他序列一樣,一個集合可以具有多個數據類型的元素。此外,你還可以使用set()函數從列表中創建一個集合。以下示例將給您一些關於初始化集合的想法。

#包含單個數據類型的集合
set1 = {1, 2, 3, 4, 2, 3, 1}
print(set1)

#包含多個數據類型的集合
set2 = {1, 2, 3, (1, 2, 3), 2.45, "Python", 2, 3}
print(set2)

#從列表中創建集合
theList = [1, 2, 3, 4, 2, 3, 1]
theSet = set(theList)
print(theSet)

輸出將會是

================== RESTART: /home/imtiaz/set1.py ==================
set([1, 2, 3, 4])
set([1, 2, 3, 2.45, 'Python', (1, 2, 3)])
set([1, 2, 3, 4])
>>> 

將元素添加到Python Set

在前面的例子中,我们学习了如何直接初始化Python set。假设我们需要向set中添加元素,我们可以使用add()函数来实现。但是这个函数只能添加单个元素。如果你想添加可迭代的元素,比如列表或者set,你可以使用update()函数来实现。下面的例子将帮助你理解这一点

#初始化一个空的set
theSet = set()

#使用add()函数添加单个元素
theSet.add(1)
theSet.add(2)
theSet.add(3)
theSet.add(2)
#添加另一种数据类型
theSet.add('hello')

#使用update()函数添加可迭代的元素
theSet.update([1,2,4,'hello','world']) #list as iterable element
theSet.update({1,2,5}) #set as iterable element
print(theSet)

下面代码的输出将会是这样的

================== RESTART: /home/imtiaz/set_new.py ==================
set([1, 2, 3, 4, 5, 'world', 'hello'])
>>> 

从Python Set中删除元素

有两个函数可以从Python Set中删除元素。一个是remove()函数,另一个是discard()函数。如果你要删除的元素不在set中,remove()函数会引发异常。但是discard函数不会这样做。下面的代码将展示给你

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

#使用discard()函数删除3
theSet.discard(3)
print(theSet)

#再次调用discard()函数删除3
theSet.discard(3) #This won't raise any exception
print(theSet)

#调用remove()函数删除5
theSet.remove(5)
print(theSet)

#调用remove()函数删除5 again
theSet.remove(5) #this would raise exception
print(theSet) #this won't be printed

你会发现输出结果是这样的,

================== RESTART: /home/imtiaz/set_del.py ==================
set([1, 2, 4, 5, 6])
set([1, 2, 4, 5, 6])
set([1, 2, 4, 6])

Traceback (most recent call last):
  File "/home/imtiaz/set_del.py", line 16, in 
    theSet.remove(5) #this would raise exception
KeyError: 5
>>> 

Python 集合運算

你可能熟悉一些數學集合操作,比如聯集、交集、差集。我們也可以使用 Python 集合來執行這些操作。現在,我們將學習如何做到這一點。

Python 集合聯集

聯集是將兩個集合合併的操作。這意味著,聯集將創建另一個包含兩個集合所有唯一元素的集合。例如,{1, 2, 3, 4} 和 {2, 3, 5, 7} 是兩個集合。如果我們對它們進行聯集操作,我們會得到 {1, 2, 3, 4, 5, 7}。我們可以使用 union() 函數來獲得這個結果。

Python 集合交集

同樣,交集是獲取兩個集合的共同唯一元素的操作。例如,{1, 2, 3, 4} 和 {2, 3, 5, 7} 是兩個集合。如果我們對它們取交集,我們得到 {2, 3}。交集操作是通過 intersection() 函數來完成的。

Python 集合差異

現在,差異操作比較兩個集合並創建一個新的集合,其中包含集合A中與集合B不相同的項目。假設我們有兩個集合,A = {1, 2, 3, 4} 和 B = {2, 3, 5, 7}。然後,A – B 操作將生成 {1, 4}。此外,B – A 將生成 {5, 7}。差異操作由difference()函數執行… 以下代碼將為您提供在Python編程中執行這些集合操作的想法。

A = {1, 2, 3, 4} #initializing set A
B = {2, 3, 5, 7} #initializing set B

union_operation = A.union(B)

print("A union B :")
print(union_operation)

intersection_operation = A.intersection(B)

print("A intersection B :")
print(intersection_operation)

difference_operation = A.difference(B)

print("A-B :")
print(difference_operation)

difference_operation = B.difference(A)
print("B-A :")
print(difference_operation)

您將獲得的輸出將如下所示

================== RESTART: /home/imtiaz/set_op.py ==================
A union B :
set([1, 2, 3, 4, 5, 7])
A intersection B :
set([2, 3])
A-B :
set([1, 4])
B-A :
set([5, 7])
>>> 

所以,今天就是這樣了。希望您對Python集合有所了解。如有任何進一步的查詢,請在評論框中寫下您的查詢。我們將回答您。參考:官方文檔

Source:
https://www.digitalocean.com/community/tutorials/python-set