Python 集合

在本教程中,我们将学习 Python 集合。在我们先前的文章中,我们学习了有关 Python 字符串的知识。你可以从这里学习。

Python 集合

Python 集合是一种无序的独特元素集合。假设你有一个列表,你只需要列表中的唯一项,你可以使用 Python 集合。同样,如果你只需要输入的唯一项,Python 集合也可以帮助你。你可以添加或删除其中的项。你可以通过将元素放在花括号之间来初始化一个集合。与其他序列一样,一个集合可以包含多个数据类型的元素。此外,你还可以使用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 集合添加元素

在前面的例子中,我们学习了如何直接初始化Python集合。假设我们需要向集合添加元素,可以使用add()函数。但是此函数只能添加单个元素。如果要添加类似列表或集合的可迭代元素,可以使用update()函数。以下示例将帮助您理解这个

#初始化一个空集
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集合中删除元素

有两个函数可从Python集合中删除元素。一个是remove(),另一个是discard()函数。如果要删除的元素不在集合中,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