Python程序设计基础:字典与集合(二)

news2024/10/6 0:38:05

文章目录

  • 一、字典的整体操作
    • 1、字典的遍历
    • 2、字典的排序
    • 3、字典的合并
  • 二、创建与访问集合
    • 1、集合的创建
    • 2、集合的访问
  • 三、集合的基本操作
    • 1、集合的增、删、查
    • 2、集合的数学运算

一、字典的整体操作

字典的整体操作是指以字典为操作对象,对字典进行遍历、排序以及合并这三种操作。

1、字典的遍历

和序列的遍历相似,字典的遍历也是通过for循环来实现,根据遍历的内容可以划分为遍历所有的键、遍历所有的值以及遍历所有的条目。

遍历所有的键
字典中存在名为keys()的方法返回字典中所有的键,可以和for循环一起使用进行键的遍历。
在这里插入图片描述
若想同时查看键所对应的值,可结合字典的访问一起进行。
在这里插入图片描述

遍历所有的值
字典中存在名为values()的方法返回字典中所有的值,可以和for循环一起使用进行值的遍历。
在这里插入图片描述

遍历所有的条目
字典中存在名为items()的方法返回字典中所有的条目,可以和for循环一起使用进行条目的遍历。
在这里插入图片描述
上述遍历方式得到的每个条目都对应一个元组,也可以进一步使用索引的方式分别访问键和值。
在这里插入图片描述

2、字典的排序

字典的排序主要是指将字典中的条目按照期望的顺序进行显示,由于中文的排序涉及到编码较为麻烦,因此主要介绍英文字符的排序。字典中使用内置函数sorted()可以将键按照字母顺序进行排序,默认按照升序进行输出。
在这里插入图片描述
可以看到上述排序方法只会将键进行输出,且原字典不会发生任何改变,若要改变字典中的条目顺序,可以结合列表和元组的特性进行修改。

3、字典的合并

字典的合并是指将两个字典的条目合并到一起,实现的途径主要有以下三种:使用for循环、使用update()方法以及使用dict()函数。

使用for循环
这种方式通过for循环遍历字典,将其所有条目逐条加到另一个字典当中。
在这里插入图片描述
上述for循环遍历item2中的每个条目并将其逐条加到item1之中。

update()方法
update()方法用于将参数字典添加到调用方法的字典之中,其语法格式如下:

字典1.update(字典2

在这里插入图片描述

dict()函数
前面有介绍使用dict()函数可以将一组双元素序列转换成字典,因此在对字典进行合并时可以先将字典转换成列表,先对列表进行合并,然后使用diac()函数将合并后的列表转换成字典。
在这里插入图片描述
此外还可以直接使用dict()函数将两个字典进行合并,其语法格式如下:

字典1 = dict(字典2**字典3)

在这里插入图片描述

二、创建与访问集合

集合专门用来存放一组无序且互不相同的元素,同时元素必须是不可变类型,结合此特性,集合除了可以用于数学中的集合运算外,还可以用来进行关系测试和消除重复元素。

1、集合的创建

集合的创建和字典相似,直接在“{}”里面放置相关元素来表示。

{元素1,元素2......}

若括号中无任何内容,表示为一个空集合,但是空集合的创建不能直接用“集合={}”进行创建,该方式创建的是字典。
除了直接定义集合外,还可以使用set()函数创建集合,该函数专门用于将序列转换成集合,转换的过程中会去掉重复的元素。
在这里插入图片描述
set()函数大部分情况下被用于字符串或列表的去重。

2、集合的访问

由于集合的元素是无序的,因此访问时要么通过集合名进行整体输出,要么使用for循环实现元素的遍历。

三、集合的基本操作

1、集合的增、删、查

集合的操作相对较为简单,主要是进行元素的添加、删除以及查询是否存在。

元素添加

集合.add(i)

将参数i作为元素添加到集合当中,若i是序列,也将其作为一个元素整体加入。

集合.update(i)

将参数i作为元素添加到集合中,i是序列,且可以为可变数据,将其拆分后再加入。
在这里插入图片描述

元素删除

集合.remove(i)

将指定元素i从集合中删除,若不存在,则会报错。

集合.discard(i)

将指定元素i从集合中删除,若不存在,正常执行,无任何输出。

集合.pop()

从集合中随机删除一个元素并返回。

集合.clear()

清空集合中的所有元素。
在这里插入图片描述

查询是否存在

i in 集合

判断i是否在集合中,若存在则返回True,不存在则返回False。
在这里插入图片描述

2、集合的数学运算

集合的数学运算主要指求集合的交集、并集、差集以及对称差集。
A和B的交集与并集:
在这里插入图片描述
A和B的差集与对称差集:
在这里插入图片描述
交集的语法格式:

A|B
A.union(B)

并集的语法格式:

A&B
A.intersection(B)

差集的语法格式:

A-B
A.difference(B) 

对称差集的语法格式:

A^B
A.symmetric_difference(B) 

在这里插入图片描述

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

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

相关文章

hdu foreverlasting and fried-chicken

题意: 在一个有n个点和m条边的图中找到形状是上图的子图,输出个数 思路: 仔细观察上图,设第二行的那个点为x,最后一行的点为y,那么可以知道,如果x和y都和相同的所有点中取四个点分别和xy相连…

DUBBO服务多网卡,服务调用失败

如果服务器是多网卡的,比如安装了docker,有一个docker虚拟网卡,一个实体网卡eth0,当我们运行springboot应用后,dubbo注入到zk的地址是 docker虚拟网卡的地址172网段,而不是实际内网地址192网段,…

OpenLayers实战,OpenLayers使用wind-layer插件实现风场动态效果

专栏目录: OpenLayers入门教程汇总目录 前言 本章讲解如何使用OpenLayers的气象风场插件wind-layer实现气象风场动态效果,该插件除了可用于OpenLayers之外,还可用于mapgl、leaflet和cesuim等二维/三维地图引擎,还是很强大的,废话少谈,让我们立刻开始实现吧。 二、依赖和…

如何将论文中的字快速复制出来?图片如何提取文字?

在日常的办公中,我们经常会遇到需要将纸质文件里的文字提取出来,再转换为电子档的情况,如果我们采用手动输入的话,不仅速度太慢,而且还可能因此耽误到后边的工作,是不是已经有小伙伴遇到这种现象&#xff0…

element中tabs组件,click事件点击拿到当前item的所有数据

话不多说,直接上代码: 添加一个:value,然后在用JSON.stringify(item)转一下就可以了,这样就会存在$attrs.value这个里面了。 接着在点击事件里面获取使用el.$attrs.value,注意这里在拿到这个值时,再用JSON…

锌离子荧光探针TSQ,109628-27-5,具有很好的选择性荧光探针

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----外观以及性质: 锌离子荧光探针TSQ(CAS号:109628-27-5),锌离子荧光探针TSQ是用于检测锌离子的荧光探针。 TSQ与Zn离子结合后,吸收波长和发射波…

如何创建一个SpringBoot项目

欢迎来到南方有乔木的博客!!! 博主主页:点击点击!戳一戳!! 博主名:南方有乔木 博主简介: 一名在校大学生,正在努力学习Java语言编程。穷且意坚,不坠青云之…

sort排序报错:java.lang.UnsupportedOperationException: null

文章目录 问题原因解决方式 问题 Groovy 调用 .sort{} 排序报错:java.lang.UnsupportedOperationException: null solutionScenario2SolutionProcessList.sort { it.idx } 原因 调用的sort的对象是Collections的内部类对象UnmodifiableRandomAcessList 解决方式 调用 coll…

数据结构:单链表的实现(C语言)

个人主页 : 水月梦镜花 个人专栏 : 《C语言》 《数据结构》 文章目录 前言一、单链表实现思路和图解1.节点的定义(SListNode)2.申请一个节点(BuySListNode)3.单链表打印(SListPrint)4.单链表尾插(SListPushBack)5.单链表的头插(SListPushFront)6.单链表的…

【ChatGPT辅助学Rust | 基础系列 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一,创建项目二,两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时,都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中,将会介绍如何在Rust中编写并运…

音频编辑必备技能:怎么将音频转换mp3

丽萨:嘿,听说你最近在研究音频格式转换的方法,有眉目了吗? 凯瑞:没错,我下载了很多高清音乐,发现有些格式的音频文件在我的播放器上打不开,所以想一个转换工具。但是网上软件太多&a…

使用腾讯云 Cloud studio 实现调度百度AI实现文字识别

文章目录 前言导入模块设置百度AI的APP_ID、API_KEY和SECRET_KEY定义路径和文件列表打开文本文件准备写入数据逐个处理图片文件关闭文本文件重复处理其他图片文件完整代码解释说明 运行效果 前言 今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图…

站外引流效果差?一文带你搞懂解海外主流社交媒体算法!

在流量成本越来越高的当下,无论是平台卖家还是独立站卖家都在努力拓展流量渠道。站外引流是推动业务增长的关键策略,很多卖家会把重点放在内容营销上,但其实除了做好内容之前,了解社交媒体的算法才能让营销效果最大化。 01.Faceb…

操作系统专栏2进程管理from 小林coding

进程管理 基本概念进程控制进程上下文切换 线程进程和线程的比较进程通信管道消息队列共享内存信号量信号socket 基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元.并行和并发:状态: 其中挂起是指没有给程序分配实际…

一百三十八、ClickHouse——使用clickhouse-backup备份ClickHouse库表

一、目标 使用clickhouse-backup在本地全库备份ClickHouse的数据库 二、前提 已经安装好clickhouse-backup 注意:由于之前同事已经按照好clickhouse-backup,所以我就没有安装 如有需要请参考其他人的博客安装一下,下面是我认为比较好的一…

如何看待前端已死这个问题(大学生篇)

小编刚大学毕业,还记得是大三的时候选择的前端开发方向,那个时候行情其实并没有这么差,最近互联网上讨论这一个很火的话题,叫前端已死。那么我就说说我的看法吧,虽然可能比起行业的大佬会比较短浅,但我想就…

盘点12个Vue 3的高颜值UI组件库

今天给大家盘点12个Vue 3的高颜值UI组件库,凡是用过Vue 框架开发项目的老铁们最少有用过其中一种或者二种以上的UI组件库,用广东话讲:个个都靓。 今天给大家盘点12个Vue 3的高颜值UI组件库,凡是用过Vue 框架开发项目的老铁们最少有…

【我们一起60天准备考研算法面试(大全)-第三十天 30/60】【矩阵翻转】【矩阵相乘】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

一文读懂原生应用与混合应用

大家对于原生应用和混合应用已经非常熟悉了,这里就不再进行详细的介绍,用通俗易懂的话解释下他们的一些特点。 1、原生应用 在 Android、iOS 等移动平台上利用提供的开发语言、开发类库、开发工具进行 App 软件开发。比如 Android 是用 Java、Eclipse、…

日撸代码300行:第59天(数值型数据的 NB 算法)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957 相较于符号型数据,数值型是将实例的概率密度带入进行概率计算。数值型数据仅需要对决策属性那里进行…