Python入门之集合的使用教程
在Python中,集合(set)是一种无序且不重复的数据结构。集合的主要作用是去除重复的元素,同时也支持很多常见的数学集操作,比如求交集、并集、差集等。本篇教程就将带领大家深入了解Python中集合的使用方法。
创建集合
创建一个集合非常简单,只需要使用set()
函数或者使用{}
括号即可,代码示例如下:
# 使用set()函数创建集合
set1 = set([1, 2, 3, 4, 5])
print(set1) # {1, 2, 3, 4, 5}
# 使用{}括号创建集合
set2 = {'apple', 'banana', 'pear'}
print(set2) # {'banana', 'apple', 'pear'}
集合的基本操作
添加元素
我们可以使用add()
方法向集合中添加一个元素,用update()
方法往集合中添加一个可迭代对象,代码示例如下:
# 添加元素
set1.add(6)
print(set1) # {1, 2, 3, 4, 5, 6}
# 添加可迭代对象
set1.update([7, 8, 9])
print(set1) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
删除元素
我们可以使用remove()
方法或者discard()
方法从集合中删除一个元素,代码示例如下:
# 删除元素
set1.remove(6)
print(set1) # {1, 2, 3, 4, 5, 7, 8, 9}
# 删除不存在的元素
set1.discard(10)
print(set1) # {1, 2, 3, 4, 5, 7, 8, 9}
注意:如果使用remove()
方法删除一个不存在的元素会抛出KeyError
错误,而使用discard()
方法删除一个不存在的元素不会抛出错误。
集合运算
Python中的集合支持很多数学上的集合运算,例如并集、交集、差集等。下面我们就分别介绍这些运算。
并集
我们可以使用|
运算符或者union()
方法求出两个集合的并集,代码示例如下:
set3 = {1, 2, 3, 4, 5}
set4 = {4, 5, 6, 7, 8}
set5 = set3 | set4
print(set5) # {1, 2, 3, 4, 5, 6, 7, 8}
set6 = set3.union(set4)
print(set6) # {1, 2, 3, 4, 5, 6, 7, 8}
交集
我们可以使用&
运算符或者intersection()
方法求出两个集合的交集,代码示例如下:
set7 = {1, 2, 3, 4, 5}
set8 = {4, 5, 6, 7, 8}
set9 = set7 & set8
print(set9) # {4, 5}
set10 = set7.intersection(set8)
print(set10) # {4, 5}
差集
我们可以使用-
运算符或者difference()
方法求出两个集合的差集,代码示例如下:
set11 = {1, 2, 3, 4, 5}
set12 = {4, 5, 6, 7, 8}
set13 = set11 - set12
print(set13) # {1, 2, 3}
set14 = set11.difference(set12)
print(set14) # {1, 2, 3}
示例说明
示例1:统计文章中的不重复单词数量
请看下面这段代码,它使用了split()
函数把一个字符串转换成一个单词列表,在使用集合去重之后计算列表中元素的个数。
text = 'Python is a popular programming language. It is used to develop desktop applications, web applications, and games.'
word_list = text.split()
word_set = set(word_list)
print(len(word_set)) # 16
运行以上代码,输出结果为16,即文章中有16个不重复的单词。
示例2:统计购买了哪些商品
请看下面这段代码,它使用了input()
函数来获取用户输入,并将用户输入的商品名称放入集合中去重。
item_set = set()
while True:
item = input('请输入您购买的商品名称(按Q结束):')
if item == 'Q':
break
item_set.add(item)
print('您购买了以下商品:', item_set)
运行以上代码,用户可以输入多个商品名称,当用户输入Q时,输入结束,并打印出所购买商品的集合。