【Python基础】集合类型

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢!

一、前言

本文将详细介绍Python集合的定义、特性、创建方法以及常见操作,并通过代码示例进行说明。

  • 什么是Python?

    Python是由荷兰人吉多·范罗苏姆于1990年初设计的一门高级编程语言,该语言应用领域非常广泛,尤其在数据科学、人工智能、游戏开发等领域,它已经成为最受欢迎的程序设计语言之一,非常适合新手学习。

    Python语言标准库官方使用手册:https://docs.python.org/zh-cn/3/library/turtle.html#turtle-methods

  • Python语言有哪些特点?

    1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    2.易于阅读:Python代码定义的更清晰。

    3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    4.丰富的库:Python的最大的优势之一具有丰富的标准库,并且跨平台的,在UNIX,Windows和Mac兼容很好。

    5.面向对象:Python支持面向对象编程,在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

    6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    8.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    在这里插入图片描述

二、集合的定义与特性

Python中的集合(Set)是一种无序且不包含重复元素的数据结构。它主要用于成员检测和消除重复元素等场景,支持快速执行数学集合运算,如并集、交集和差集等。

集合中的元素是无序的,且每个元素必须是不可变类型,如整数、浮点数、字符串和元组(如果元组中的所有元素也是不可变的)。集合不支持索引和切片操作,因为它们是无序的。

三、创建集合

在Python中,可以通过两种方式来创建一个集合:

使用花括号 {} 直接定义:

fruits = {'apple', 'banana', 'orange'}
print(fruits)  # 输出: {'banana', 'apple', 'orange'}

使用内置函数 set() 创建,可以从一个列表、元组或其他可迭代对象中创建集合,自动去除重复元素:

numbers = set([1, 2, 2, 3, 4, 4, 5])
print(numbers)  # 输出: {1, 2, 3, 4, 5}

四、集合的常用操作

4.1 添加元素

使用 add() 方法向集合中添加一个元素,如果元素已存在,则不会添加:

s = {1, 2, 3}
s.add(4)
print(s)  # 输出: {1, 2, 3, 4}
4.2 删除元素

使用 remove() 方法删除集合中的一个元素,如果元素不存在,则会引发 KeyError 异常。使用 discard() 方法删除元素时,如果元素不存在,则不会报错:

s = {1, 2, 3, 4}
s.remove(3)  # 删除元素3
print(s)  # 输出: {1, 2, 4}

s.discard(5)  # 尝试删除不存在的元素5,不会报错
print(s)  # 输出: {1, 2, 4}

使用 pop() 方法随机删除并返回一个元素,如果集合为空,则会引发 KeyError 异常:

s = {1, 2, 3, 4}
element = s.pop()
print(element)  # 随机输出一个元素,比如1
print(s)  # 输出: {2, 3, 4} 或其他组合
4.3 遍历集合

由于集合是无序的,可以使用循环遍历集合中的元素:

s = {1, 2, 3, 4}
for item in s:
    print(item)

"""
输出:
1
2
3
4
"""
4.4 计算集合元素个数

使用len()函数,计算集合中元素的个数:

s = {1, 2, 3, 4}
print(len(s)) # 输出:4
4.5 判断元素是否在集合中存在

判断元素是否在集合中存在,语法格式如下:

x in s
s1 = {1, 2, 3, 4}
if 1 in s1:
	print("yes")  # 输出: yes
else:
    print("no") 

五、集合运算

5.1 交集:使用 intersection() 方法或 & 运算符获取两个集合的交集
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1.intersection(s2))  # 输出: {3, 4}
print(s1 & s2)  # 输出: {3, 4}
5.2 并集:使用 union() 方法或 | 运算符获取两个集合的并集
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1.union(s2))  # 输出: {1, 2, 3, 4, 5, 6}
print(s1 | s2)  # 输出: {1, 2, 3, 4, 5, 6}
5.3 差集:使用 difference() 方法或 - 运算符获取两个集合的差集
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1.difference(s2))  # 输出: {1, 2}
print(s2 - s1)  # 输出: {5, 6}
5.4 对称差集:使用 symmetric_difference() 方法或 ^ 运算符获取两个集合的对称差集
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1.symmetric_difference(s2))  # 输出: {1, 2, 5, 6}
print(s1 ^ s2)  # 输出: {1, 2, 5, 6}

六、集合的应用场景

6.1 成员检测

由于集合的成员检测操作的时间复杂度为O(1),因此在需要快速判断一个元素是否在一个集合中时,使用集合是非常高效的。

s1 = {1, 2, 3, 4}
if 1 in s1:
	print("yes")  # 输出: yes
else:
    print("no") 
6.2 去重

集合自动去除重复元素,因此可以将一个包含重复元素的列表转换为集合,从而快速得到一个不包含重复元素的新列表:

s1 = [1, 2, 2, 3, 4, 4, 5]
s2 = list(set(s1))
print(s2)  # 输出: [1, 2, 3, 4, 5]
6.3 数学集合运算

集合支持各种数学集合运算,如并集、交集和差集等,因此在处理需要这些运算的场景时非常有用。

七、总结

Python中的集合是一种非常实用的数据结构,它提供了高效的去重和成员检测功能,并且支持各种数学集合运算。在实际编程中,合理使用集合可以大大提高代码的效率和可读性。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姑苏老陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值