Python 集合

Python Set, python set example

Python 集合

Python Set是一个无序的唯一元素的集合。假设你有一个列表,你只需要列表中的唯一元素,你可以使用Python Set。同样地,如果你只需要从输入中获得唯一的元素,Python集合也可以帮助你做到这一点。你可以添加或删除其中的元素。你可以通过将元素放在花括号之间来初始化一个集合。像其他序列一样,一个set可以包含多种数据类型的元素。此外,你还可以使用set()函数从列表中创建一个集合。下面的例子将给你一些初始化集合的思路。

#set containing single data-type
set1 = {1, 2, 3, 4, 2, 3, 1}
print(set1)

#set containing multiple data-type
set2 = {1, 2, 3, (1, 2, 3), 2.45, "Python", 2, 3}
print(set2)

#creating a set from a list
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()函数来实现。以下示例将帮助您理解这一点。

#initialize an empty set
theSet = set()

#add a single element using add() function
theSet.add(1)
theSet.add(2)
theSet.add(3)
theSet.add(2)
#add another data-type
theSet.add('hello')

#add iterable elements using update() function
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 Set中删除元素有两个函数。一个是remove()函数,另一个是discard()函数。如果要删除的元素不在集合中,remove()函数将抛出异常。但是discard()函数不会执行任何操作。以下代码将展示这些函数的使用。

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

#remove 3 using discard() function
theSet.discard(3)
print(theSet)

#call discard() function again to remove 3
theSet.discard(3) #This won't raise any exception
print(theSet)

#call remove() function to remove 5
theSet.remove(5)
print(theSet)

#call remove() function to 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的Set有了很好的学习了解。如果有任何进一步的问题,可以在评论框中写下来,我们会给你回答。参考资料:官方文档

发表回复 0

Your email address will not be published. Required fields are marked *


广告
将在 10 秒后关闭
bannerAds