集合结构


集合的简介— “总有一天,你的苦会照亮你走的路”

集合是 Python 中的一种无序、可变、不重复的数据类型,它很重要的一个特点就是里面的元素 不可以重复,所以集合在处理需要唯一元素的数据时非常有用。

集合和数学中的集合概念基本一致,可以进行并集、交集、差集等数学操作。

在 Python 中,集合的写法是两侧是一对花括号 { } ,元素用逗号隔开,具体的结构如下:

set = {element1 , element2 , element3 ·······}

集合和列表、字典、元组等数据结构一样,可以包含各种静态数据类型,来看个例子:

# 创建一个数字类型的集合
numbers = {1,2,3,4,5}
 
# 创建一个字符类型的集合
fruits = {'苹果','香蕉','橘子'}
 
# 创建一个混合类型的集合
mixed_set = {5, '牧旗教程', True, 3.14159}

要注意,集合无法存储可变的数据结构,比如字典、列表、集合,否则程序会抛出异常报错。

集合具有以下几个重要的特点:

特点 描述
唯一性 集合中的元素是唯一的,不允许重复出现。
无序性 集合中的元素没有固定的顺序,无法像列表一样通过索引访问。
高效性 集合特别适用处理大量唯一元素的情况。

由于集合的元素的唯一性,所以常常用来进行去重操作,来看几个例子:

我有一个含有重复元素的列表,想对其进行去重操作

# 我的列表
my_list = [1,1,3,3,5,5,6,8,8]
 
# 将列表转换成集合再转化为列表
result = list(set(my_list))
 
# 输出结果
print(result)

结果如下,可见列表中的元素均被去重:

[1, 3, 5, 6, 8]

集合的操作

在 Python 中对于集合有如下的操作方式:

方式 描述
集合的访问 不能使用索引提取元素,只能通过循环来访问数据。
集合新增元素 可以使用 add 函数 或者 update 函数来向集合里新增元素。
集合删除元素 可以使用 remove 函数 或者 discard 函数来删除集合中的元素。

接下来我将通过一些示例,帮助大家依次掌握集合的操作方式:


集合的数学运算

集合的数学运算是指在数学中对集合进行操作和组合的过程。这些操作包括并集、交集、差集和对称差集等。通过这些运算,我们可以从给定的集合中提取出特定的元素组合或满足特定条件的元素。

方式 描述
集合的并集 并集是指将两个或多个集合中的所有元素合并在一起,形成一个新的集合。
集合的交集 交集是指两个或多个集合中共有的元素组成的新集合。
集合的差集 差集是指从一个集合中减去与另一个集合相同的元素,得到的新集合。
集合的对称差集 对称差集是指两个集合中不共有的元素组成的新集合。

下面我将结合示例来对集合的运算依次做出详细的说明和讲解:


例题

请编写一段 Python 代码,来计算 Hello World 字符串和 I enjoy reading 字符串中是否有共同的字母。如果有的话将这些字母输出出来。

想要判断两个字符串是否有共同的字母,首先对各自字符串进行去重操作,找到每个字符串中存在的所有字母,然后再对去重后的内容取交集来判断。

需要注意的是,两段话中都有空格,空格不是字母,所以需要剔除掉。

# 先创建两个字符串对应的变量
str1 = 'Hello World'
str2 = 'I enjoy reading'
 
# 将两个字符串内的字母转化为集合
set1 = set(str1)
set2 = set(str2)
 
# 对两个集合取交集,并将结果和空格所在的集合取差集(剔除空格)
result = set1 & set2 - {' '}
 
# 判断差集的长度,如果长度是 0 说明两者没有相同的字母
if len(result) == 0 :
    print("两个字符串没有共同的字母")
else:
    print("两个字符串有共同的字母,具体如下:")
    for letter in result:
         print(letter)

运行上面的程序,结果如下:

两个字符串有共同的字母,具体如下:
d
o
e
r

使用 set 函数可以将一个对象转变成集合对象,判断两个集合是否有重复的元素用到了上面提到的 集合数学运算 的方法,将重复的元素用 for 循环输出结果。

关注公众号【牧旗教程】,回复“更多例题”,获取更多题型进行训练~

您的打赏将帮助维护网站服务器的正常运营,并为作者的后续更新提供更多的动力。

无法显示 无法显示