【Python】集合

在这里插入图片描述

个人主页:GUIQU.
归属专栏:Python

在这里插入图片描述

文章目录

  • 1. 集合的创建
  • 2. 集合的基本操作
    • 2.1 访问集合元素
    • 2.2 添加元素
    • 2.3 删除元素
  • 3. 集合的数学运算
    • 3.1 交集(`&` 或 `intersection()` 方法)
    • 3.2 并集(`|` 或 `union()` 方法)
    • 3.3 差集(`-` 或 `difference()` 方法)
    • 3.4 对称差集(`^` 或 `symmetric_difference()` 方法)
  • 4. 集合的其他常用操作
    • 4.1 判断元素是否在集合中
    • 4.2 集合的长度

正文
在 Python 中,集合(set)是一种无序且元素唯一的数据类型。它主要用于成员检测、去除重复元素以及进行交集、并集、差集等数学运算。

1. 集合的创建

  • 使用花括号创建:可以使用花括号 {} 来创建集合,但注意创建空集合时不能直接用 {},因为这会创建一个空字典,要使用 set() 来创建空集合。
# 创建包含元素的集合
fruits = {'apple', 'banana', 'cherry'}
print(fruits)  # 创建空集合
empty_set = set()
print(empty_set)  
  • 使用 set() 函数创建:可以将列表、元组等可迭代对象转换为集合。
numbers = [1, 2, 2, 3, 4, 4]
unique_numbers = set(numbers)
print(unique_numbers)  

2. 集合的基本操作

2.1 访问集合元素

由于集合是无序的,不能通过索引来访问集合中的元素,但可以使用 for 循环遍历集合。

fruits = {'apple', 'banana', 'cherry'}
for fruit in fruits:print(fruit)

2.2 添加元素

  • add() 方法:用于向集合中添加一个元素。
fruits = {'apple', 'banana'}
fruits.add('cherry')
print(fruits)
  • update() 方法:用于将一个可迭代对象中的元素添加到集合中。
fruits = {'apple', 'banana'}
new_fruits = ['cherry', 'date']
fruits.update(new_fruits)
print(fruits)

2.3 删除元素

  • remove() 方法:用于删除集合中的指定元素,如果元素不存在会引发 KeyError 异常。
fruits = {'apple', 'banana', 'cherry'}
fruits.remove('banana')
print(fruits)
  • discard() 方法:用于删除集合中的指定元素,如果元素不存在不会引发异常。
fruits = {'apple', 'banana', 'cherry'}
fruits.discard('date')
print(fruits)
  • pop() 方法:随机删除并返回集合中的一个元素。
fruits = {'apple', 'banana', 'cherry'}
removed_fruit = fruits.pop()
print(removed_fruit)
print(fruits)
  • clear() 方法:用于清空集合中的所有元素。
fruits = {'apple', 'banana', 'cherry'}
fruits.clear()
print(fruits)

3. 集合的数学运算

3.1 交集(&intersection() 方法)

交集是指两个集合中共同拥有的元素。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
intersection_set = set1 & set2
print(intersection_set)  # 或者使用 intersection() 方法
intersection_set = set1.intersection(set2)
print(intersection_set)  

3.2 并集(|union() 方法)

并集是指将两个集合中的所有元素合并在一起,去除重复元素。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
union_set = set1 | set2
print(union_set)  # 或者使用 union() 方法
union_set = set1.union(set2)
print(union_set)  

3.3 差集(-difference() 方法)

差集是指在一个集合中存在,但在另一个集合中不存在的元素。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
difference_set = set1 - set2
print(difference_set)  # 或者使用 difference() 方法
difference_set = set1.difference(set2)
print(difference_set)  

3.4 对称差集(^symmetric_difference() 方法)

对称差集是指在两个集合中,只在其中一个集合中出现的元素。

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # 或者使用 symmetric_difference() 方法
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  

4. 集合的其他常用操作

4.1 判断元素是否在集合中

可以使用 in 关键字来判断一个元素是否在集合中。

fruits = {'apple', 'banana', 'cherry'}
print('apple' in fruits)  
print('date' in fruits)  

4.2 集合的长度

可以使用 len() 函数来获取集合中元素的个数。

fruits = {'apple', 'banana', 'cherry'}
print(len(fruits))  

综上所述,Python 集合是一种非常实用的数据类型,它在处理去重、成员检测和集合运算等方面非常高效。

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16421.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter_学习记录_基本组件的使用记录_2

1. PopupMenuButton的使用 代码案例&#xff1a; import package:flutter/material.dart;// ----PopupMemuButtonDemo的案例---- class PopupMemuButtonDemo extends StatefulWidget {const PopupMemuButtonDemo({super.key});overrideState<PopupMemuButtonDemo> crea…

基于java手机销售网站设计和实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

初识计算机网络

从此篇我将开始网络新篇章&#xff01; 1. 网络发展史 最初的计算机之间相互独立存在&#xff0c;每个计算机只能持有自己的数据&#xff0c;数据无法共享。此时的计算机为独立模式 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#x…

PyTorch 中 `torch.cuda.amp` 相关警告的解决方法

在最近的写代码过程中&#xff0c;遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。 警告内容 警告 1: torch.cuda.amp.autocast FutureWarning: torch.cuda.amp.autocast(args...) is deprecated. Please use torch.amp.autocast(cuda, args...) i…

【PS 2022】Adobe Genuine Service Alert 弹出

电脑总是弹出Adobe Genuine Service Alert弹窗 1. 不关掉弹窗并打开任务管理器&#xff0c;找到Adobe Genuine Service Alert&#xff0c;并右键进入文件所在位置 2 在任务管理器中结束进程并将文件夹中的 .exe 文件都使用空文档替换掉 3. 打开PS不弹出弹窗&#xff0c;解决&a…

Vue2生命周期面试题

在 Vue 2 中&#xff0c;this.$el 和 this.$data 都是 Vue 实例的属性&#xff0c;代表不同的内容。 1. this.$el this.$el 是 Vue 实例的根 DOM 元素&#xff0c;它指向 Vue 实例所控制的根节点元素。在 Vue 中&#xff0c;el 是在 Vue 实例创建时&#xff0c;指定的根元素&…

unity 安装Entities

因为Entities目前不支持用资源名动态加载资源&#xff01;没错&#xff0c;AssetsBundle或Addressables都不能用于Entities&#xff1b;也就意味着现阶段不能用Entities开发DLC或热更游戏。 Entities必须使用SubScene&#xff0c;而SubScene不能从资源动态加载&#xff0c;路被…

基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试

基于 PyTorch 的树叶分类任务&#xff1a;从数据准备到模型训练与测试 1. 引言 在计算机视觉领域&#xff0c;图像分类是一个经典的任务。本文将详细介绍如何使用 PyTorch 实现一个树叶分类任务。我们将从数据准备开始&#xff0c;逐步构建模型、训练模型&#xff0c;并在测试…

团结引擎 Shader Graph:解锁图形创作新高度

Shader Graph 始终致力于为开发者提供直观且高效的着色器构建工具&#xff0c;持续推动图形渲染创作的创新与便捷。在团结引擎1.4.0中&#xff0c;Shader Graph 迎来了重大更新&#xff0c;新增多项强大功能并优化操作体验&#xff0c;助力开发者更轻松地实现高质量的渲染效果与…

C# OpenCV机器视觉:模仿Halcon各向异性扩散滤波

在一个充满创意与挑战的图像处理工作室里&#xff0c;阿强是一位热情的图像魔法师。他总是在追求更加出色的图像效果&#xff0c;然而&#xff0c;传统的图像处理方法有时候并不能满足他的需求。 有一天&#xff0c;阿强听说了 Halcon 中的各向异性扩散滤波功能&#xff0c;它…

超详细的数据结构3(初阶C语言版)栈和队列。

文章目录 栈和队列1.栈1.1 概念与结构1.2 栈的实现 2. 队列2.1 概念与结构2.2 队列的实现 总结 栈和队列 1.栈 1.1 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进行插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶&#xff0c;另…

利用邮件合并将Excel的信息转为Word(单个测试用例转Word)

利用邮件合并将Excel的信息转为Word 效果一览效果前效果后 场景及问题解决方案 一、准备工作准备Excel数据源准备Word模板 二、邮件合并操作步骤连接Excel数据源插入合并域预览并生成合并文档 效果一览 效果前 效果后 场景及问题 在执行项目时的验收阶段&#xff0c;对于测试…

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码及效果展示

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例&#xff0c;使用Arduino语言&#xff1a; 硬件连接 INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RG…

用户认证综合实验

实验需求 需求一&#xff1a;根据下表&#xff0c;完成相关配置 需求二&#xff1a;配置DHCP协议&#xff0c;具体要求如下 需求三&#xff1a;防火墙安全区域配置 需求四&#xff1a;防火墙地址组信息 需求五&#xff1a;管理员 为 FW 配置一个配置管理员。要求管理员可以通…

Curser2_解除机器码限制

# Curser1_无限白嫖试用次数 文末有所需工具下载地址 Cursor Device ID Changer 一个用于修改 Cursor 编辑器设备 ID 的跨平台工具集。当遇到设备 ID 锁定问题时&#xff0c;可用于重置设备标识。 功能特性 ✨ 支持 Windows 和 macOS 系统&#x1f504; 自动生成符合格式的…

linux部署node服务

1、安装nvm管理node版本 # 下载、解压到指定目录 wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz tar -zxvf nvm-0.39.0.tar.gz -C /opt/nvm # 配置环境 vim ~/.bashrc~&#xff1a;这是一个路径简写符号&#xff0c;代表当前用户的主目录。在大多数 …

Kotlin实战经验:将接口回调转换成suspend挂起函数

在 Kotlin 协程中, suspendCoroutine 和 suspendCancellableCoroutine 是用于将回调或基于 future 的异步操作转换成挂起函数。 suspendCoroutine 用途:将回调式异步操作转换为可挂起函数 行为: 启动一个新的协程来处理基于回调的操作挂起当前协程,直到调用回调回调负责…

【DeepSeek服务器繁忙,请稍后再试...如何解决?】

DeepSeek服务器繁忙&#xff0c;请稍后再试...如何解决&#xff1f; DeepSeek该咋使用&#xff1f;解决办法&#xff1a;本地桌面工具接下来说下&#xff0c;DeepSeek提示词该咋写&#xff1f; DeepSeek该咋使用&#xff1f; 首先&#xff0c;先说下DeepSeek该咋使用&#xff…

SDKMAN! 的英文全称是 Software Development Kit Manager(软件开发工具包管理器)

文章目录 SDKMAN! 的核心功能SDKMAN! 的常用命令SDKMAN! 的优势总结 SDKMAN! 的英文全称是 Software Development Kit Manager。它是一个用于管理多个软件开发工具&#xff08;如 Java、Groovy、Scala、Kotlin 等&#xff09;版本的工具。SDKMAN! 提供了一个简单的方式来安装、…

Python实现GO鹅优化算法优化支持向量机SVM分类模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 随着信息技术的迅猛发展&#xff0c;数据量呈爆炸式增长&#xff0c;如何从海量的数据中提取有价值…