13.Python从入门到精通—Python 集合操作与方法概览

13.Python从入门到精通—Python 集合操作与方法概览

  • Python 集合
    • 集合的基本操作
      • 1、添加元素
      • 2、移除元素
      • 3、计算集合元素个数
      • 4、清空集合
      • 5、判断元素是否在集合中存在
    • 集合内置方法完整列表

Python 集合

在Python中,集合是一种无序、不重复的数据类型。集合通常用于去重、检查成员资格等操作。Python提供了内置的set类型来实现集合,可以使用花括号{}或set()函数来创建一个集合。

在这里插入图片描述

使用花括号创建集合:

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

使用set()函数创建集合:

my_set = set(['apple', 'banana', 'orange'])
print(my_set)  # 输出 {'banana', 'orange', 'apple'}

可以使用add()方法向集合中添加元素:

my_set = {'apple', 'banana', 'orange'}
my_set.add('pear')
print(my_set)  # 输出 {'banana', 'orange', 'pear', 'apple'}

可以使用remove()方法从集合中删除元素:

my_set = {'apple', 'banana', 'orange'}
my_set.remove('banana')
print(my_set)  # 输出 {'orange', 'apple'}

可以使用in运算符来检查元素是否属于集合:

my_set = {'apple', 'banana', 'orange'}
print('apple' in my_set)  # 输出 True
print('pear' in my_set)  # 输出 False

需要注意的是,集合中的元素必须是不可变的对象,因为集合的实现也是基于哈希表的。如果集合中包含可变对象,例如列表或字典,将引发TypeError异常。

集合的基本操作

1、添加元素

在Python中,可以使用以下方法向字典中添加元素:

  • 使用键来添加元素:使用方括号[]和赋值符号=,将新的键值对添加到字典中。
  • 使用update()方法:使用update()方法将一个字典中的键值对添加到另一个字典中。

下面是这两种方法的示例:

# 使用键来添加元素
my_dict = {'key1': 'value1', 'key2': 'value2'}
my_dict['key3'] = 'value3'
print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}使用update()方法添加元素
my_dict = {'key1': 'value1', 'key2': 'value2'}
new_dict = {'key3': 'value3', 'key4': 'value4'}
my_dict.update(new_dict)
print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}

使用这些方法,可以方便地向字典中添加新的键值对。

2、移除元素

在Python中,可以使用以下方法从字典中移除元素:

  • 使用del语句:使用del语句和键来删除字典中的元素。
  • 使用pop()方法:使用pop()方法和键来删除字典中的元素,并返回该元素的值。
  • 使用clear()方法:使用clear()方法删除字典中的所有元素。

下面是这三种方法的示例:

# 使用del语句删除元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
del my_dict['key2']
print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}使用pop()方法删除元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
value = my_dict.pop('key2')
print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}
print(value) # 输出:value2
使用clear()方法删除所有元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
my_dict.clear()
print(my_dict) # 输出:{}

使用这些方法,可以方便地从字典中移除元素。

3、计算集合元素个数

在Python中,可以使用len()函数来计算集合中元素的个数。例如

my_set = {'apple', 'banana', 'orange'}
print(len(my_set))  # 输出 3

需要注意的是,如果集合中有重复的元素,它们只会被计算一次。

4、清空集合

在Python中,可以使用以下方法清空集合:
使用clear()方法:使用clear()方法删除集合中的所有元素。

下面是这种方法的示例:

# 使用clear()方法清空集合
my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set) # 输出:set()

使用这种方法,可以方便地清空集合中的所有元素。

5、判断元素是否在集合中存在

在Python中,可以使用in运算符来判断一个元素是否在集合中存在。例如:

my_set = {'apple', 'banana', 'orange'}
print('apple' in my_set)  # 输出 True
print('pear' in my_set)  # 输出 False

需要注意的是,in运算符的时间复杂度是O(1),因此它非常适合用于集合中元素的查找操作。

集合内置方法完整列表

Python中的集合类型内置了多个方法,包括:

  • add():向集合中添加元素。

  • clear():从集合中删除所有元素

  • copy():返回集合的副本。

  • difference():返回一个包含两个集合差集元素的新集合。

  • difference_update():从原集合中删除另一个集合中的元素。

  • discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作。

  • intersection():返回两个集合的交集元素。

  • intersection_update():将原集合中的元素更新为两个集合的交集元素。

  • isdisjoint():判断两个集合是否没有交集。

  • issubset():判断一个集合是否为另一个集合的子集。

  • issuperset():判断一个集合是否为另一个集合的超集。

  • pop():随机删除并返回集合中的一个元素。

  • remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常。

  • symmetric_difference():返回两个集合的对称差集元素。

  • symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素。

  • union():返回两个集合的并集元素。

  • update():将原集合中的元素更新为两个集合的并集元素。

# 创建两个集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}# add():向集合中添加元素
set1.add(6)
print("add():", set1)  # 输出:{1, 2, 3, 6}# clear():从集合中删除所有元素
set1.clear()
print("clear():", set1)  # 输出:set()# copy():返回集合的副本
set2_copy = set2.copy()
print("copy():", set2_copy)  # 输出:{3, 4, 5}# difference():返回一个包含两个集合差集元素的新集合
diff = set2.difference(set1)
print("difference():", diff)  # 输出:{4, 5}# difference_update():从原集合中删除另一个集合中的元素
set2.difference_update(set1)
print("difference_update():", set2)  # 输出:{4, 5}# discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作
set2.discard(4)
print("discard():", set2)  # 输出:{5}# intersection():返回两个集合的交集元素
inter = set1.intersection(set2)
print("intersection():", inter)  # 输出:set()# intersection_update():将原集合中的元素更新为两个集合的交集元素
set1.intersection_update(set2)
print("intersection_update():", set1)  # 输出:set()# isdisjoint():判断两个集合是否没有交集
print("isdisjoint():", set1.isdisjoint(set2))  # 输出:True# issubset():判断一个集合是否为另一个集合的子集
print("issubset():", set1.issubset(set2))  # 输出:False# issuperset():判断一个集合是否为另一个集合的超集
print("issuperset():", set2.issuperset(set1))  # 输出:False# pop():随机删除并返回集合中的一个元素
popped = set2.pop()
print("pop():", popped)  # 输出:5
print("pop() after:", set2)  # 输出:{3}# remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常
set2.remove(3)
print("remove():", set2)  # 输出:set()# symmetric_difference():返回两个集合的对称差集元素
sym_diff = set1.symmetric_difference(set2)
print("symmetric_difference():", sym_diff)  # 输出:{1, 2}# symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素
set1.symmetric_difference_update(set2)
print("symmetric_difference_update():", set1)  # 输出:{1, 2}# union():返回两个集合的并集元素
union_set = set1.union(set2)
print("union():", union_set)  # 输出:{1, 2}# update():将原集合中的元素更新为两个集合的并集元素
set1.update(set2)
print("update():", set1)  # 输出:{1, 2}

这些方法可以对集合进行各种操作,具体用法可以参考Python官方文档。

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

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

相关文章

MVC接收请求教程

mvc接收各种请求 1-环境搭建 1.1-准备apifox发送请求 1.2-项目搭建 ①创建Web骨架的Maven项目 ​ --打开2023-IDEA ,选择New Project ​ --选择Maven Archetype ​ --注意点:Catalog默认就行了 ​ --Archetype选择webapp ​ --JDK跟着黑马敲最好…

无需借助任何三方软件,使用Windows自带分区功能实现磁盘分区!

像上面截图那样,如果当你由于文件分类或磁盘容量,想增加或减少分区盘符该怎么办。简单的理解就是怎么从E盘再分出个F盘,或者怎么从E盘分出点空间把D盘空间增大。 这里就牵扯出一个概念,磁盘分区,大概意思就是把一整个物理磁盘在系统上分出好几块区域,用来存放不同的文件…

【C++练级之路】【Lv.14】二叉搜索树(进化的二叉树——BST)

快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、二叉搜索树介绍二、二叉搜索树的模拟实现2.1 结点2.2 成员变量2.3 默认成员函数2.3.1 constructor2.3.2…

7 Internet基础(2)

1.分片控制 在 IP 数据报报头中,标识、标志和片偏移3 个字段与控制分片和重组有关。 标识:是源主机赋予 IP 数据报的标识符。目的主机利用此域和目的地址判断收到的分片属于哪个数据报,以便数据报重组。分片时,该域必须不…

sql语句基础语法之 数据表的添加相关 ​字段相关操作 ​数据筛选相关操作 ​数据排序相关操作 ​聚合函数

3月18日 数据表的筛选数据,字段操作,聚合函数 内容如下: ​ 数据表的添加相关 ​ 字段相关操作 ​ 数据筛选相关操作 ​ 数据排序相关操作 ​ 聚合函数 数据表的添加相关 use mydb; create table class_img (id int unique key auto_…

Springboot笔记-01

简化spring应用开发,约定大于配置 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点: 快速创建独立运行的spring项目以及于主流框架集成 使用嵌入式的Servlet容器&#x…

IonQ最新研究突破!引入光量子纠缠以构建量子计算网络

内容来源:量子前哨(ID:Qforepost) 编辑丨慕一 编译/排版丨沛贤 深度好文:700字丨5分钟阅读 2024年2月22日,美国量子计算公司IonQ宣布,公司研究团队已实现可重复地生成与离子纠缠的光子&#…

目标检测——YOLOv4算法解读

论文:YOLOv4:Optimal Speed and Accuracy of Object Detection 作者:Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao 链接:https://arxiv.org/pdf/2004.10934.pdf 代码:https://github.com/AlexeyAB/darkne…

如何使用Excel进行设备管理:巡检、维修、保养、备件管理

在现代企业运营中,设备管理是维持生产效率和保障生产安全的关键环节。良好的设备管理包括设备的巡检、维修、保养和备件管理等多个方面。随着信息技术的发展,许多企业开始利用电子化工具来提高设备管理的效率和准确性。其中,Excel作为一款功能…

旅游行业分析及媒体邀约资源汇总

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 酒店旅游行业分析及媒体邀约资源汇总是两个相对独立但又相互关联的领域。下面将分别对这两个方面进行概述。 酒店旅游行业分析 1. 市场概况 市场规模:评估市场的总价值、增长…

ESSBAE 数据挖掘

essbase数据挖掘框架 1.算法:用来分析数据的方法 2.模型:系列的算法集合 3.任务:数据挖掘的步骤 4.任务模板,可以重复执行的任务 数据挖掘任务: 明确任务 建立及训练模型 测试模型 执行任务 为模型打分 ess…

在Linux/Ubuntu/Debian中创建自己的命令快捷方式

虽然图标快捷方式使你移动鼠标双击就打开目标,但是你还是需要先定位到它。而在终端Terminal中你只需要输入一个自定义命令就能一步到位。 要在 Ubuntu 中创建你自己的命令或别名,你可以使用主目录中的“.bashrc”文件。 以下是创建通过 Wine 运行 Photo…

react中使用antdesign组件库的table组件实现自定义筛选菜单

需求如下: 这是一个表格的表头信息,实现这几列的筛选。 涉及到的筛选有:自定义选择项,动态生成选择项,自定义筛选菜单展示 1、依据antdesign官方给出的例子实现的,比如第一列,使用的是&#x…

阿里云RDS MySQL与自建MySQL数据库进行主从同步(GTID方式)

1、创建数据库,dump阿里云RDS数据,导入到自建MySQL 阿里云RDS的配置几乎不用动,只需从RDS开一个只读的账号出来。 在ECS服务器上远程导出RDS的数据库,执行下面命令,记得将[]内容替换掉 mysqldump -h http://***.mys…

安装vcenter管理esxi

安装vcenter管理esxi虚拟化操作系统 文章目录 安装vcenter管理esxi虚拟化操作系统1.安装vcenter2.vcenter的应用 1.安装vcenter esxi虚拟机具体安装步骤请参考上一篇文章,vcenter软件包需自己到网上下 2.vcenter的应用

[leetcode 274][H指数]

[leetcode 274][H指数] 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他&#xff…

电机学(笔记一)

磁极对数p: 直流电机的磁极对数是指电机定子的磁极对数,也等于电机电刷的对数。它与电机的转速和扭矩有直接关系。一般来说,极对数越多,电机转速越低,扭矩越大,适用于低速、高扭矩的场合;相反&…

2024.3.18JAVA编程的三层架构模式理解

2024.3.18JAVA编程的三层架构模式理解 三层架构 controller:控制层,接收前端发送的请求。对请求进行处理,并响应数据。 service:业务逻辑层,处理具体的业务逻辑数据。 dao:数据访问层(Data Ac…

Java-JVM 虚拟机原理调优实战

一、基础 栈帧(Stack Frame)栈空间的 基本元素,用于 方法的调用和方法的执行的数据结构 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后&#xff0c…

MATLAB的使用(一)

一,MATLAB的编程特点 a,语法高度简化; b,脚本式解释型语言; c,针对矩阵的高性能运算; d,丰富的函数工具箱支持; e,通过matlab本体构建跨平台; 二,MATLAB的界面 工具栏:提供快捷操作编辑器…