Python学习-----无序序列1.0(字典的创建、查看、添加、修改、删除/替换)

news2024/12/29 1:08:28

目录

前言:

字典是什么

字典的特点

1.字典的创建

(1)直接创建{} 

 (2)dict() 函数创建

2.字典的查询

(1)get()函数

(2)获取字典一组内容

3.字典键值对的添加

(1)直接添加

(2)setdefault() 函数

4.字典的修改

update() 函数

5.字典键对值的删除

(1)pop()函数

(2)popitem() 函数

(3)clear()清空字典

 (4)del 删除方法


前言:

        前面在Python的学习中,我们已经讲过了关于Python中的序列类型有有序序列和无序序列Python学习------起步3(序列与数据类型转换)_守约斯维奇的博客-CSDN博客,之前讲了有序序列中的列表,元组和字符串等相关操作;而今天我会讲解无序序列中的字典相关操作。

字典是什么

        之前学习有序序列都知道,有序序列的特点是有指定的位置,可以去通过下标去表示一个元素。而对于无序序列是没有下标的,那我们是通过什么去处理无序序列呢?

        就以字典而言,字典最大的特点是有一个(key),我们可以去通过这个键来访问字典里面的内容,其实类似于有序序列的下标。字典是一个键对应一个值的,是一种映射关系,而在数学上表现为函数,一个自变量对应一个因变量,所以我们可以去通过这个‘自变量’来对‘因变量进行处理’。字典(dictionary)在Python中是除了列表以外最灵活的数据类型了。

 实质上就是一个key对应一个value,通过key去访问value

字典的特点

1.字典是无序的(无序序列,以键值对的方式去储存数据)

2.字典是可变的(可以进行直接修改) 

3.字典中的键(key)与数据(value)是一一对应的

1.字典的创建

字典的表示:

字典名 = {

键:数据

}

比如 d = {'数学':100,'语文':100,'英语':100}

如果是创建一个空的字段的话就直接 d = {}

作用:用键值对的方式对数据进行存储,有对数据进行一个解释说明,有一个比较好的可读性

注意事项:创建字典的时候,键 如果出现了重复的话,那么重复键的内容就会把上一个的给覆盖掉

(1)直接创建{} 

示例1: 

d = {'数学':100,'语文':100,'英语':100,False:15}
print(d,type(d))
#输出结果:{'数学': 100, '语文': 100, '英语': 100, False: 15} <class 'dict'>

示例2:

#创建一个空字典
d={}
print(d,type(d))
#输出结果:{} <class 'dict'>

#输出字典中的单个元素
dd={'name':'Jack','age':19,'gender':'male'}
print(dd['age'],type(dd['age']))
#输出结果:19 <class 'int'>

示例3:

# 当字典中的键重复的时候,原来的值将会被覆盖
dd={'name':'Jack','age':19,'gender':'male','age':20}
print(dd['age'])
#输出结果:20

 (2)dict() 函数创建

示例:

#dict()函数直接创建
student = dict(name='jack', age=22)
print(student,type(student))
#输出结果:{'name': 'jack', 'age': 22} <class 'dict'>

这种写法是通过函数来实现的,同样键与数据也是一一对应的

注意:字典的 键 是唯一的不可变的,不可修改的,虽然说键可以用字符串,布尔类型,元组类型,或者整等等,这些类型都是不可变的,而列表和字典还有接下来要讲到的集合都是具有可变性,所以不可以作为字典的 键!

2.字典的查询

(1)get()函数

格式:

字典名.get(key)

返回:如果存在就返回这个数据,如果不存在就返回None

d={'name':'Jack','age':19,'home':'广东'}
print(d.get('home'))
print(d.get('phone'))
#输出结果:
#广东
#None

(2)获取字典一组内容

格式:

字典名.keys()     #获取字典所有的键
字典名.values()    #获取字典所有的值
字典名.items()    #获取字典所有的键值对

示例: 

d={'name':'Jack','age':19,'home':'广东'}
print(d.keys(),type(d.keys()))
print(d.values(),type(d.values()))
print(d.items(),type(d.items()))

这个是一个很普通的查询方法,了解一下就行了

3.字典键值对的添加

(1)直接添加

格式:

字典名[key] = 值

d={'name':'Jack','age':19,'home':'广东'}
print(d)
d['phone']='137********'
print(d)

 这种方式也是最常见的方式,直接添加就行了,没有多余的操作

(2)setdefault() 函数

格式:

字典名.setdefault(键,值)

注意事项:

1.当值没有传入进去,会默认为None

2.当键存在的时候,不会对其对应的值进行修

 示例1:

d={'name':'小明'}
d.setdefault('语文',88)
print(d)
d.setdefault('数学',99)
d.setdefault('英语',98)
print(d)

 示例2:

d={'name':'小明','语文':88,'数学':99,'英语0':98}
d.setdefault('地理')
print(d)
d.setdefault('语文',100)
print(d)

 这里可以看到,如果没有去设置value的值的时候,系统是默认为None;而且如果再次添加已有的键的时候,原来键对应的值value不会被修改

4.字典的修改

update() 函数

格式:

字典名.update({键:值,键1:值1,键2:值2……})

作用:即可以增加也可以修改 , 并且一次可以增加多个值

#修改功能
d={'name':'小明','语文':88,'数学':99,'英语':98}
d.update({'语文':100})
print(d)

#添加单个
d.update({'地理':96})
print(d)

#添加多个
d.update({'物理':60,'化学':77})
print(d)

 相较于setdefault() 函数,我个人还是比较建议用updata() 函数去实现数据的添加,同时这个函数还具备修改功能。这个函数整体还是偏向于修改功能的。

5.字典键对值的删除

(1)pop()函数

这个函数在之前学习列表的时候我是讲过的,这个函数的使用范围还是比较广的,也可以用于字典键对值的删除                                     链接:Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)_守约斯维奇的博客-CSDN博客

格式:

字典名.pop(key)

作用:指定键删除,key和value都删除

d={'name':'小明','语文':88,'数学':99,'英语':98}
d.pop('英语')
print(d)
#输出结果:{'name': '小明', '语文': 88, '数学': 99}

(2)popitem() 函数

格式:

字典名.popitem()

作用:删除掉字典最后一个键值对

d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
d.popitem()
print(d)
#输出结果:{'name': '小明', '语文': 88, '数学': 99, '英语': 98}

可见最后一个物理:60 被删除了

(3)clear()清空字典

格式:

字典名.clear()

作用:把字典里面所有键值对全部删除

d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
print(d)
d.clear()
print(d)

 (4)del 删除方法

这个也是之前在列表的删除讲过,这个方式也是很经常用到的,不仅仅可以去删除序列里面的某个数据,而且还可以把整个序列变量给删掉,所以使用的时候要看清楚删除的对象是什么 

格式:

del 字典名[key]

#删除字典中的一个键值对
d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
del d['数学']
print(d)
#输出结果:{'name': '小明', '语文': 88, '英语': 98, '物理': 60}

#删除整个字典
del d
print(d) 
#输出结果会报错的,因为字典已经被删除了,不存在了,自然就不可能打印出来

        OK,这一期就到这里了,下一期讲无序序列中的集合,thanks~~~

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

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

相关文章

1CN/Jaccard/PA/AA/RA/Katz/PageRank/SimRank

common neighbors&#xff08;CN&#xff09; 公共邻居的数量。 Jaccard 用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大&#xff0c;样本相似度越高。 preferential attachment&#xff08;PA&#xff09; 节点倾向于连接到节点度较高的节点上&#xff0c;&…

BSN-DDC基础网络详解(二):快速接入指南

本文将为大家介绍BSN算力中心方和DDC网络平台方接入DDC网络的基本流程&#xff0c;如下图所示&#xff0c;算力中心方和平台方依次执行图内左侧流程&#xff0c;右侧流程由DDC网络运营人员操作。01注册门户账号注册在接入之前&#xff0c;算力中心方和平台方需要先注册一个官方…

Android性能优化:getResources()与Binder交火导致的界面卡顿优化

欢迎&#xff1a;https://juejin.cn/post/7198430801851531324/ 欢迎&#xff1a;https://nasdaqgodzilla.github.io/2023/02/10/Android%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%EF%BC%9AgetResources-%E4%B8%8EBinder%E4%BA%A4%E7%81%AB%E5%AF%BC%E8%87%B4%E7%9A%84%E7%95%8C%E…

Neurosynth元分析——认知解码工具,软件包安装以及使用

Neurosynth元分析——认知解码工具,软件包安装以及使用 NeuroSynth 基本简介基本原理例子Neurosynth package安装及使用创建虚拟环境安装Dependencies:安装neurosynthNeurosynth使用加载必要的包下载neurosynth数据参考如上图所示。NeuroSynth 元分析感兴趣的区域沿功能连接梯…

玩转黑科技|ChatGPT保姆级注册指南(含免费手机号福利)

前言最近爆火的ChatGPT大家都应该多多少少的有所听说&#xff0c;各种渠道得知大家应该见识到他的强大&#xff0c;是不是很想上手玩一玩&#xff1f;但是由于其不支持中国电话号码进行注册&#xff0c;导致【注册ChatGPT】成了众多玩家头疼的事&#xff0c;也无法体验这个机器…

开源免费的WEB应用防火墙

开源免费的WEB应用防火墙 排名不分前后 资源宝分享&#xff1a;www.httple.net 1、南墙WEB应用防火墙&#xff08;简称&#xff1a;&#xff09;是有安科技推出的一款全方位网站防护产品。通过有安科技专有的WEB入侵异常检测等技术&#xff0c;结合有安科技团队多年应用安全的…

小白该从哪方面入手学习大数据

大数据本质上是海量数据。 以往的数据开发&#xff0c;需要一定的Java基础和工作经验&#xff0c;门槛高&#xff0c;入门难。 如果零基础入门数据开发行业的小伙伴&#xff0c;可以从Python语言入手。 Python语言简单易懂&#xff0c;适合零基础入门&#xff0c;在编程语言…

vue 回调函数(callback)的用法

一、介绍&#xff1a; 1、前提&#xff1a;在 js 中&#xff0c;函数也是对象&#xff0c;可以赋值给变量&#xff0c;可以作为参数放在函数的参数列表中&#xff0c;如&#xff1a; var doSomething function(a,b){return a b; } console.log(doSomething(2,3));2、概念&a…

神经网络基础部件-BN层详解

一&#xff0c;数学基础 1.1&#xff0c;概率密度函数 随机变量&#xff08;random variable&#xff09;是可以随机地取不同值的变量。随机变量可以是离散的或者连续的。简单起见&#xff0c;本文用大写字母 XXX 表示随机变量&#xff0c;小写字母 xxx 表示随机变量能够取到…

Zabbix 构建监控告警平台(二)--

Apache监控示例&#xff08;图形监控&#xff09;模板TemplateZabbix Items 1.Apache监控示例&#xff08;图形监控&#xff09; 1.1创建主机组 在“配置”->“主机群组”->“创建主机群组” 填入组名“webserver_test” 创建完成之后可以在“配置”->"主机群组&…

界面控件DevExpress WinForm中文教程 - 如何使用模板库构建类Office UI?

DevExpress WinForm拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜任…

opengl glsl shader vscode安装插件glsl_canvas 和 shader languagesupportForVS Code

u_resolution 是画布尺寸&#xff0c;即代表画布宽高 //给内置变量gl_PointSize赋值像素大小&#xff0c;注意值是浮点数 gl_PointSize20.0; // 片元沿着x方向渐变 gl_FragColor vec4(gl_FragCoord.x/500.0*1.0,1.0,0.0,1.0); // 接收插值后的纹理坐标 varying vec2 v…

作为开发人员您会喜欢的 7 个免费公共 API

1. JSON 占位符JSON Placeholder是一项服务&#xff0c;可为您提供用于测试和原型制作的假在线REST API 。这是每个开发人员的首选 API。2.谷歌翻译Google有大量的API&#xff0c;但其中大部分是付费的。值得庆幸的是&#xff0c;Translate API提供100 多种语言的免费翻译&…

Spring面试重点(二)——Spring循环依赖

Spring循环依赖 什么是循环依赖&#xff1f; 从字面上来理解就是A依赖B的同时B也依赖了A&#xff0c;就像上面这样&#xff0c;或者C依赖与自己本身。体现到代码层次就是这个样子 Component public class A { // A中注入了B Autowired private B b; }---Component public cla…

@Valid注解配合属性校验注解完成参数校验并且优化异常处理

Valid注解配合属性校验注解完成参数校验并且优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验2 优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验 向数据库商品分类表中新增商品分类字段&#xff0c;并校验传入的参数 不使用注解的传统方法&#xf…

基于python+django社区报修维修平台

本系统主要分为前后和后台页面,前台页面主要功能有&#xff1a;首页,座位信息,交流论坛,公告信息,个人中心,后台管理。后台页面分为&#xff1a;首页,个人中心,学生管理,教师管理,座位信息管理,座位预约管理,班级信息管理,签到信息管理,离开信息管理,座位暂离管理,举报信息管理…

MLX90614红外温度计介绍

MLX90614红外温度计简介MLX90614是一款红外非接触温度计。TO-39金属封装里同时集成了红外感应热电堆探测器芯片和信号处理专用集成芯片。由于集成了低噪声放大器、17位模数转换器和强大的数字信号处理单元&#xff0c;使得高精度和高分辨度的温度计得以实现。温度计具备出厂校准…

如何上传文件

在页面上面&#xff0c;form 表单里面添加属性enctype"multipart/form-data" 比如&#xff1a; <form name"frm" method"post" enctype"multipart/form-data"> 添加文件选择框&#xff1a; <input type"file" na…

安全上下文

目录 文章目录目录本节实战前言1、为 Pod 设置 Security Context2、为容器设置 Security Context3、设置 Linux Capabilities1.Linux Capabilities&#xff08;1&#xff09;什么是 Capabilitie&#xff08;2&#xff09;Capabilities 的赋予和继承&#xff08;3&#xff09;如…

ctfshow 年ctf

文章目录除夕初一初二初三初四初五初六官方wp除夕 include "flag.php";$year $_GET[year];if($year2022 && $year1!2023){echo $flag; }else{highlight_file(__FILE__); }弱比较和强比较的问题 2023那里是强比较&#xff0c;还是很容易的 /?year2022.0科…