Python入门之集合的使用教程

  • Post category:Python

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时,输入结束,并打印出所购买商品的集合。