【深度学习】 Python 和 NumPy 系列教程(五):Python容器:3、集合Set详解(初始化、访问元素、常用操作、常用函数)

目录

一、前言

二、实验环境

三、Python容器(Containers)

0、容器介绍

1、列表(List)

2、元组(Tuple)

3、集合(Set)

[1. 初始化](#1. 初始化)

[2. 访问集合元素](#2. 访问集合元素)

[3. 常用操作](#3. 常用操作)

[a. 添加单个元素(add)](#a. 添加单个元素(add))

[b. 添加多个元素(update)](#b. 添加多个元素(update))

[c. 删除](#c. 删除)

[d. 判断元素是否存在于集合中](#d. 判断元素是否存在于集合中)

[4. 常用函数](#4. 常用函数)

[a. 交集](#a. 交集)

[b. 并集](#b. 并集)

[c. 差集](#c. 差集)

[d. 对称差集](#d. 对称差集)

[e. 总结](#e. 总结)


一、前言

Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组、数组索引、数据类型、数组数学、广播
  • Matplotlib:绘图,子图,图像
  • IPython:创建笔记本,典型工作流程

二、实验环境

Python 3.7

运行下述命令检查Python版本

bash 复制代码
 python --version 

三、Python容器(Containers)

0、容器介绍

Python中的容器是用于存储和组织数据的对象。常见的容器包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。

  • 列表是有序的可变容器,可以包含不同类型的元素,使用方括号(\[\])来创建。
python 复制代码
my_list = [1, 2, 3, 'a', 'b', 'c']
  • 元组是有序的不可变容器,也可以包含不同类型的元素,使用圆括号(())来创建。
python 复制代码
my_tuple = (1, 2, 3, 'a', 'b', 'c')
  • 集合是无序且不重复的容器,用于存储唯一的元素,使用大括号({})或者set()函数来创建。
python 复制代码
my_set = {1, 2, 3, 'a', 'b', 'c'}
  • 字典是无序的键值对容器,用于存储具有唯一键的值,使用花括号({})或者dict()函数来创建。
python 复制代码
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

这些容器都提供了不同的方法和操作,用于对数据进行存储、访问和处理。可以根据具体的需求选择适合的容器类型。

1、列表(List)

【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132768246?spm=1001.2014.3001.5501

2、元组(Tuple)

【深度学习】 Python 和 NumPy 系列教程(四):Python容器:2、元组tuple详解(初始化、索引和切片、元组特性、常用操作、拆包、遍历)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132777307?spm=1001.2014.3001.5501

3、集合(Set)

集合(Set)是一种常见的数据结构。集合是无序且包含唯一元素的容器。它的特点是不允许重复的元素,并且可以进行交集、并集、差集等各种集合操作。集合(Set)不支持直接的拆包操作,因为集合是无序的,无法通过索引来确定元素的位置。

1. 初始化

集合可以使用大括号{}set()函数进行创建。

python 复制代码
my_set = {1, 2, 3}  # 使用大括号创建集合
my_set = set([1, 2, 3])  # 使用set()函数创建集合

2. 访问集合元素

与列表(List)和元组(Tuple)不同,集合中的元素是无序的,因此无法通过索引来访问集合中的元素。此外,集合中的元素必须是可哈希的(即不可变的),因为集合本身是基于哈希表实现的。我们可以使用循环或将集合转换为其他可索引的数据结构来访问元素:

a. 使用循环遍历集合中的元素

python 复制代码
my_set = {1, 2, 3, 4, 5}
for element in my_set:
    print(element)

这将输出集合中的每个元素。

b. 转换为其他数据结构

将集合转换为列表(List)或元组(Tuple),然后通过索引访问元素。

python 复制代码
my_set = {1, 2, 3, 4, 5}

my_list = list(my_set)
print(my_list[0])  # 访问第一个元素

my_tuple = tuple(my_set)
print(my_tuple[2])  # 访问第三个元素

3. 常用操作

a. 添加单个元素(add)

python 复制代码
my_set.add(5)  # 添加单个元素

b. 添加多个元素(update)

python 复制代码
my_set.update([6, 7, 8])  # 添加多个元素

c. 删除

移除集合中的元素可以使用remove()方法,如果元素不存在会引发KeyError异常;或使用discard()方法,如果元素不存在则不会引发异常。

python 复制代码
my_set.remove(3)      # 移除指定元素,如果不存在会引发KeyError异常
my_set.discard(4)     # 移除指定元素,如果不存在不会引发异常

d. 判断元素是否存在于集合中

python 复制代码
my_set = {1, 2, 3}  
element = 3
if element in my_set:
    print("元素存在于集合中")

4. 常用函数

这些操作可以使用相应的方法(如intersection()union()difference()symmetric_difference())或运算符(如&|-^)进行。

a. 交集

集合的交集是指包含同时存在于两个或多个集合中的所有元素的新集合。可以使用交集运算符(&)或intersection()方法来计算交集。

python 复制代码
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

# 使用交集运算符
intersection = set1 & set2
print(intersection)

# 使用intersection()方法
intersection = set1.intersection(set2)
print(intersection)

输出结果为:

复制代码
{3, 4}

b. 并集

集合的并集是指包含所有属于两个或多个集合的唯一元素的新集合。可以使用并集运算符(|)或union()方法来计算并集。

python 复制代码
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用并集运算符
union = set1 | set2
print(union)

# 使用union()方法
union = set1.union(set2)
print(union)

输出结果为:

复制代码
{1, 2, 3, 4, 5}

c. 差集

集合的差集是指从一个集合中去除属于另一个集合的所有元素后得到的新集合。可以使用差集运算符(-)或difference()方法来计算差集。

python 复制代码
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}

# 使用差集运算符
difference = set1 - set2
print(difference)

# 使用difference()方法
difference = set1.difference(set2)
print(difference)

输出结果为:

复制代码
{1, 2}

d. 对称差集

集合的对称差集是指包含属于两个集合中的唯一元素,但不包含同时存在于两个集合中的元素的新集合。可以使用对称差集运算符(^)或symmetric_difference()方法来计算对称差集。

python 复制代码
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用对称差集运算符
symmetric_difference = set1 ^ set2
print(symmetric_difference)

# 使用symmetric_difference()方法
symmetric_difference = set1.symmetric_difference(set2)
print(symmetric_difference)

输出结果为:

复制代码
{1, 2, 4, 5}

e. 总结

python 复制代码
set1 = {1, 2, 3}
set2 = {3, 4, 5}

intersection1 = set1.intersection(set2)  # 交集
intersection2 = set1 & set2  # 交集

union1 = set1.union(set2)  # 并集
union2 = set1 | set2  # 并集

difference1 = set1.difference(set2)  # 差集
difference2 = set1 - set2  # 差集

symmetric_difference1 = set1.symmetric_difference(set2)  # 对称差集
symmetric_difference2 = set1 ^ set2  # 对称差集
相关推荐
小刘在重生~6 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
2601_962099467 小时前
Python xlwt设置excel单元格字体及格式
python·excel·xlwt·样式设置·单元格格式
奇牙coding1237 小时前
GPT-6-Astra API 接入教程:OpenRouter 路由配置 + Python/curl 示例 + 静默降级踩坑
开发语言·python·gpt·ai
2601_962298277 小时前
Python与Selenium结合的Web自动化测试全流程实践教程
自动化测试·python·selenium·web测试·pageobjectmodel
天衍四九-8 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
529宝宝起名网8 小时前
用 Python 实现名字寓意评分算法:基于 NLP 语义分析的名字内涵深度评估
python·算法·自然语言处理
2601_962298678 小时前
Python:对象缓存优化机制(CPython)
python·性能优化·内存优化·cpython·对象缓存
枫彩9 小时前
A股数据源怎么选?用 Python 验收 AI 复盘的日期与明细
python·ai agent·股票数据·mcp
2601_962382439 小时前
Python 代码不可不知的函数式编程技术
python·函数式编程·高阶函数·嵌套函数·头等函数
2601_962078039 小时前
Python办公自动化与数据分析实战 培训班2021年
python·数据分析·办公自动化·自动化办公·实战演练