Python学习笔记——集合

news2024/11/17 10:44:54
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
或者
set(value)

创建集合

# 创建空集合
set1 = set()

# 创建同一数据类型元素的集合
set2 = {"a", "b", "c", "d", "e", "f"}

# 创建不同数据类型元素的集合
set3 = {"a", 2, 'a', ()}

集合中元素不可重复

set = {1,1,1,3,3,3,2,2,2}
print(set)    #1,3,2

集合中元素无序

set = {2,1,5,6,2,8,4}
print(set)    #1,5,8,4,2,6

添加集合元素

  • 通过 add() 添加元素

将新元素添加到集合中,如果元素已存在,则不进行任何操作。

set1 = set(("Google", "Runoob", "Taobao"))
set1.add("Facebook")
print(set1)    #{'Taobao', 'Facebook', 'Google', 'Runoob'}
  • 通过 update() 添加元素

通过 update() 添加元素时,参数必须是可迭代对象,比如可以是 str、list、tuple、set、dict 等类型,该方法不同于 add() 方法,add() 是把参数当作一个整体添加到集合中,而 update() 则是把参数里的所有元素逐一添加到集合中。

set1 = set(("Google", "Runoob", "Taobao"))
set1.update({1,2})
print(set1)    #{1, 2, 'Google', 'Taobao', 'Runoob'}
set1.update([1,4],[5,6])  
print(set1)    #{1, 2, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

删除集合元素

  • 通过 remove() 删除指定元素,元素不存在则报错

  • 通过 discard() 删除指定元素,元素不存在不会报错

  • 通过 pop() 随机删除元素,会返回删除的元素(如果集合为空时使用 pop() 方法,则会出现报错)

  • 通过 clear() 删除集合所有元素

注意:set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
set1 = set(("Google", "Runoob", "Taobao"))
set1.remove("Taobao")
print(set1)    #{'Google', 'Runoob'}
set1.remove("Facebook")   # 不存在会发生错误

set1.discard("Facebook")  # 不存在不会发生错误

set2 = set1.pop()

set1.clear()
print(set1)    #set()

集合运算操作符

  • 运算符 & ,取交集,返回2个集合中相同的元素

  • 运算符 | ,取并集,合并2个集合并去除重复元素

  • 运算符 - ,取差集,从集合中去除元素

  • 运算符 ^ ,取对称差集,返回两个集合中不重复的元素集合

  • 关键字 in

通过关键字 in ,可检查当前集合中是否包含指定元素,返回结果为布尔值 True 或 False。

set1 = {1, 2, 3, 4}
set2 = {1, 5, 6, 4}

print(set1 & set2)    #{1, 4}
print(set1 | set2)    #{1, 2, 3, 4, 5, 6}
print(set1 - set2)    #{2, 3}
print(set2 - set1)    #{5, 6}
print(set1 ^ set2)    #{2, 3, 5, 6}
print(1 in set1)     #True

集合内置方法

add()

为集合添加元素

clear()

移除集合中的所有元素

copy()

拷贝一个集合

difference()

返回多个集合的差集

difference_update()

移除集合中的元素,该元素在指定的集合也存在。

discard()

删除集合中指定的元素

intersection()

返回集合的交集

intersection_update()

返回集合的交集。

isdisjoint()

判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

issubset()

判断指定集合是否为该方法参数集合的子集。

issuperset()

判断该方法的参数集合是否为指定集合的子集

pop()

随机移除元素

remove()

移除指定元素

symmetric_difference()

返回两个集合中不重复的元素集合。

symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

union()

返回两个集合的并集

update()

给集合添加元素

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode[313]超级丑数

难度:中等题目:超级丑数 是一个正整数,并满足其所有质因数都出现在质数数组 primes中。给你一个整数 n和一个整数数组 primes,返回第 n个 超级丑数 。题目数据保证第 n个 超级丑数 在 32-bit 带符号整数范围内。示例 1&#xff1a…

C++ 类和对象(三)

类和对象(一) 类和对象(二) 日期类 目录 一. 再谈构造函数 1.构造函数体赋值 2.初始化列表 3.隐式类型转换与explicit关键字 4.C11优化 二. static成员 1.概念 2.特性 三. 友元 1.友元函数 2.友元类 四. 内部…

Java 如何设计一款小游戏详细讲解(二)

继续上面(一),Java 如何设计一款小游戏详细讲解(一)步骤步骤一接下来我们主要完成GameJFrame,就是拼图游戏的界面及代码。这里接下来完成菜单的设置,将主界面的代码放到一个方法中,像下面这样,接下来我们书写菜单的代码…

基于Python实现种差值方法(完整代码详细教程)

三种插值方法都是使用Python自己实现的。1.1 最近邻插值寻找每个中心点周围的八个点中有无未丢失的点,如果有的话就赋值为第一个找到的点,如果没有就扩大范围再次寻找,在最大范围内都找不到的话就跳过。1.2 双线性插值使用解方程的方法求解&a…

(十八)Threads异步和多线程(Thread、Threadpool、Task)-语言进阶2

Threads异步和多线程-语言进阶2一、Thread1. 线程启动2. 线程等待3.前台线程/后台线程4.扩展thread封装回调二、Threadpool1.线程池2.线程池使用3.ManualResetEvent 线程池等待三、Task1. Task启动方式2.waitall 、waitany1.waitall2.waitany3.WaitAll、waitany场景4. 应用&…

Spring为什么这么火 之 Spring的创建及存储、获取Bean对象

目录 1、创建Spring项目 1.1、创建一个Maven项目 1.2、添加Spring框架支持 1.3、添加启动类 2、存储Bean对象 2.1、创建Bean对象 2.2、将Bean对象注册到Spring容器中 3、获取、使用Bean对象 3.1、得到Spring上下文对象 使用ApplicationContext作为Spring的上下文 【更…

服务器相关命令(docker相关)

一:安装docker 之前安装过旧版本,使用以下命令可以卸载(整个copy过去): yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-e…

AOP面向切面编程

AOP 面向切面编程 AOP是什么 AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续,是软件开发中的一个热点,是 j…

【Linux】-- 环境变量

目录 环境变量 常见环境变量 HOME 和环境变量相关的命令 通过代码如何获取环境变量 环境变量参数 通过第三方变量environ获取 通过getenv函数来特定访问获取 通过setenv函数来特定访问获取 环境变量 命令:which ls 将命令ls的完整路径写入到标准输出。 #in…

用R语言理解洛必达法则

文章目录5 洛必达法则极限的种类洛必达法则作用于幂函数5 洛必达法则 极限的种类 令NNN为常数,则常规的极限运算大致有以下几种 ∞N∞∞⋇N∞(N̸0)N∔∞∞N−∞−∞N/∞0N/0∞N∞∞(N̸1)∞N∞(N̸0)\begin{matrix} &\infty\pm N\infty\quad&\infty\divi…

MySQL版本由5.7.37更新到5.7.39

一、前景 由于mysql5.7.37存在漏洞,影响系统安全,所以需要将mysql版本升级到5.7的最新版本5.7.39。 二、步骤 1、下载5.7.39的安装包: 下载链接如下: https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el…

node基础知识

node基础知识 node在真实项目中的应用 webpack基于node环境 用nodejs的语法合并压缩打包 js放到客户端浏览器中执行 放到服务器端运行:java因为jdk php因为tomcat c#因为有.net framework 项目架构1:中小型项目-基于nodejs构建全栈 项目架构2&#xff1a…

mysql转DM达梦数据库+springboot兼容DM数据库+springboot兼容activity5.22.0

由于现在做的项目中需要针对数据库进行国产化操作,最终完成从mysql到达梦的迁移,记录整合迁移记录如下:安装初始化达梦数据库(傻瓜式安装即可)安装达梦数据库(windows、linux)初始化数据库实例关…

代码质量与安全 | 新时代:2023年商业软件开发的五大关键目标

进入2023年,技术趋势仍然聚焦于人工智能、边缘智能和气候变化领域,但供应链增速放缓和日益增长的消费者需求阻碍着创新的步伐。为了在行业中保持竞争力,并实现软件工程预定目标,软件开发领导者需要主动制定预算和时间管理计划&…

Java设计模式-模板模式Template

介绍 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行。它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说&#xff…

中移链合约常用开发介绍 (二)多索引表的使用

一、目的本文详细介绍了开发、部署和测试一个地址簿的智能合约的流程,适用于EOS的初学者了解如何使用智能合约实现本地区块链上数据的持久化和对持久化数据的增删改查。二、智能合约介绍区块链作为一种分布式可信计算平台,去中心化是其最本质的特征。每笔…

17.Isaac教程--机器学习流程

机器学习流程 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录机器学习流程模拟训练PC 和边缘设备上的推理使用 TensorRT 进行推理Torch推理使用 Tensorflow 进行推理示例PyCodelet配套代码Tensorflow 推理小码TensorRT 推理小码SampleAc…

23种设计模式(三)——模板方法模式【组件协作】

文章目录意图什么时候使用模板方法真实世界类比常说的钩子模板方法的实现模板方法模式的优缺点亦称: Template Method 意图 它的主要思想是,定义一个操作的一系列步骤,对于某些暂时确定不下来的步骤,就留给子类去实现好了&#x…

位图与矢量图的区别

相信大家在日常的工作过程中,经常会听到位图和矢量图,那么位图和矢量图的区别是什么呢? 1.定义 ①位图:称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的。这 些点可以进行不同的排…

测试用例设计方法有哪些?举例说明

众所周知,测试用例是编制的一组测试输入、执行条件及预期结果,专门为的是某个特殊目标,即测试某个程序路径,或是核实是否满足某个特定的需求。一般来讲,常用的测试用例设计方法有五种,分别是:正…