当前位置: 首页 > news >正文

Python 的集合类型

引言

        在前面的课程中,我们已经学习了 Python 的基本输入输出、数据类型及其转换、顺序结构、分支结构、循环结构、循环控制语句、字符串类型、列表类型、元组类型以及字典类型。本课时将介绍 Python 中的集合类型,包括集合的创建与操作、集合的常用操作(如并集、交集、差集),并通过一个具体的示例来展示如何使用集合来查找重复的元素。

集合类型简介

        集合是一种无序的、不重复的数据类型,可以存储唯一的元素。集合支持数学上的集合运算,如并集、交集、差集等。集合中的元素必须是不可变的类型(如数字、字符串、元组等)。

集合的创建与操作

  1. 创建集合

    • 使用花括号 {} 来创建集合,并在括号内放入元素。
    • 使用 set() 构造函数来创建集合。
    empty_set = set()
    set_with_values = {1, 2, 3, 4}
    set_from_list = set([1, 2, 3, 3, 4, 4, 5])
  2. 添加元素到集合

    • 使用 add() 方法向集合中添加元素。
    set_with_values.add(5)
  3. 删除集合中的元素

    • 使用 remove() 方法从集合中删除元素。
    set_with_values.remove(5)
  4. 检查元素是否在集合中

    • 使用成员运算符 in 来检查元素是否存在于集合中。
    element_in_set = 3 in set_with_values  # True

集合的常用操作

集合支持多种数学上的集合运算,以下是一些常用的集合操作:

  1. 并集

    • 使用 union() 方法或 | 操作符来计算两个集合的并集。
    union_result = set_with_values.union({3, 4, 5})
    union_result = set_with_values | {3, 4, 5}
  2. 交集

    • 使用 intersection() 方法或 & 操作符来计算两个集合的交集。
    intersection_result = set_with_values.intersection({3, 4, 5})
    intersection_result = set_with_values & {3, 4, 5}
  3. 差集

    • 使用 difference() 方法或 - 操作符来计算两个集合的差集。
    difference_result = set_with_values.difference({3, 4, 5})
    difference_result = set_with_values - {3, 4, 5}
  4. 对称差集

    • 使用 symmetric_difference() 方法或 ^ 操作符来计算两个集合的对称差集。
    symmetric_difference_result = set_with_values.symmetric_difference({3, 4, 5})
    symmetric_difference_result = set_with_values ^ {3, 4, 5}

查找重复的元素

现在我们通过一个具体的示例来展示如何使用集合来查找重复的元素,并演示集合的一些基本操作。

示例代码

# 创建一个包含可能重复元素的列表
data = [1, 2, 3, 2, 4, 3, 5, 6, 7, 6, 8]# 使用集合来查找重复元素
unique_elements = set(data)
duplicates = set()# 遍历原列表,找出重复元素
for element in data:if unique_elements.remove(element) and element in unique_elements:duplicates.add(element)# 输出结果
print(f"原列表:{data}")
print(f"重复元素:{duplicates}")
print(f"唯一元素:{unique_elements}")

示例解析

  1. 创建集合

    • 使用花括号 {} 来创建集合 unique_elements,并将列表 data 转换成集合。
  2. 查找重复元素

    • 使用集合 duplicates 来记录重复元素。
    • 遍历列表 data,如果元素在 unique_elements 中存在并且移除它后还能找到它(即重复),则将其添加到 duplicates 集合中。
  3. 输出结果

    • 输出原列表、重复元素集合和唯一元素集合。

小结

        通过本课时的学习,你已经掌握了 Python 中的集合类型,并通过一个具体的示例展示了如何使用集合来查找重复的元素。集合作为高效的、无序的、不重复的数据类型,在处理需要去重或进行集合运算的问题时非常有用。了解如何有效地创建、访问、处理集合对于编写高质量的程序至关重要。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机三级网络技术总结(四)
  • Python 从入门到实战22(类的定义、使用)
  • TCP/IP五层模型
  • HBase初探笔记
  • 【前端】main.js中app.vue中 render函数的作用及使用背景
  • 黑马头条day2-预览
  • MME-RealWorld:您的多模态大型语言模型能挑战高分辨率的真实世界场景吗?这些场景对人类来说都非常困难!
  • 自动化测试Mock神器:轻松模拟HTTP请求!
  • 【深度学习】(2)--PyTorch框架认识
  • 简单题66-加一(Python)20240918
  • GUI编程16:图片按钮、单选框、多选框
  • Ubuntu 22.04上安装Java JDK 8
  • 自定义Spring Security认证处理的完整解决方案
  • OpenCV 1
  • Vue Router 编程式导航全攻略:深入掌握 push, replace, go, back, forward,beforeEach 方法
  • AWS实战 - 利用IAM对S3做访问控制
  • CSS魔法堂:Absolute Positioning就这个样
  • ES6语法详解(一)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue学习系列(二)vue-cli
  • 产品三维模型在线预览
  • 机器学习中为什么要做归一化normalization
  • 聊聊sentinel的DegradeSlot
  • 聊一聊前端的监控
  • 浏览器缓存机制分析
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何用vue打造一个移动端音乐播放器
  • 自制字幕遮挡器
  • 走向全栈之MongoDB的使用
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # Redis 入门到精通(一)数据类型(4)
  • ###项目技术发展史
  • #pragma once
  • (BFS)hdoj2377-Bus Pass
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)深入super,看Python如何解决钻石继承难题
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core中如何集成RabbitMQ
  • .NET Framework 服务实现监控可观测性最佳实践
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net反混淆脱壳工具de4dot的使用
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .Net中间语言BeforeFieldInit