百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

5.9_Python_字典的创建与删除(python字典的操作)

off999 2024-11-02 12:32 24 浏览 0 评论

字典类型。

现在去看一下字典类型,与列表和元组类型不一样。字典类型是根据一个信息去查找另外的一个信息的方式,它构成了键-值对儿,它表示索引用的键和对应的值构成的一个键-值对儿,这样的一个对应的关系。

去看一下下面这个图,上面是什么?上面这个key叫做键,是一个人的身份证号,而下面它所对应的值叫value,这个value是对应的一个具体的一个对象。由于在字典当中,它没有整数索引的概念,所以要想检索字典当中的元素,可以通过这个键去检索元素。

与列表一样,字典也是Python当中的可变数据类型,也就说学两个可变数据类型了,一个是列表一个是字典,所以它是可变数据类型,它具有增、删、改等一系列的操作。

与列表不同的是,字典当中的元素是无序的,因为它的底层使用了一个叫做hash的东西,第一个添加到字典当中的元素,在内存当中它并不一定是在第一位的,这就是什么无序的一个特点。而且字典当中键要求必须唯一,只能有一个,不能有重复,但是值可以出现重复。

还有最重要的一点就是,字典当中的键要求是不可变序列,所以谁可以去作为字典当中的键?字符串可以、整数可以、浮点可以、元组也可以,因为元组是学的一个不可变的数据类型,它可以但是列表是不允许作为字典当中的键的。

去看一下字典的创建方式有这样的两种。

·第一种是使用花括号直接创建字典,就这种方式,使用{去创建字典的时候,是一对key1:value1逗号这是一对,key2:value2这是又的另外的一对。

·第二种方式,它使用内置函数dict()去创建字典。

使用dict()去创建字典还有两种方式。

·第一种就是通过映射函数创建字典,它有个映射函数叫做zip,zip小括号,小括号里面它写lst1,lst2。当然也可以是元组,它怎么去操作?这是lst1,这是lst2,它会把两个列表当中对应索引位置上的元素括在一起,括在一起前面的是键,后面的是一个值,也就说10和cat括在一起,10将作为键,cat去作为值。

·还有一种就是直接使用dict 0的去创建,这是一个key1,这是一个什么?把它叫做赋值运算符,字典也是序列当中的一种,所以序列的相关操作对于字典依然可以使用。字典的删除与列表和元组的删除完全相同,都可以使用del语句句去删除。

现在去看一下字典的创建与删除,新建一个Python文件,示例5-15,字典的创建与删除。

·首先采用的第一种方式去创建字典,花括号里面写个10冒号,cat这是第一组,20冒号dog这是第二组,第三组,30冒号pet,第四组,第四组的键依然是20,它的值是一个zoo。

这个时候发现在字典当中有两个键是相同的,都是20,它的值会怎么办?程序会报错吗?当右键运行的时候发现程序没有报错,而是第二个20的值去将第一个20的值进行了覆盖。所以这种情况说明什么?当键相同时,它的value进行了覆盖,这是第一种创建字典的方式。

·再看一下第二种创建字典的方式,使用zip函数映射。首先有一个lst1里面有这样10、20、30、40这样的4个元素,list2,cat、dog,pet,zoo,car,有这样的5个元素,一个是4个元素一个是5个元素。

在使用zip函数去进行映射的时候情况会怎么样?去输出一下zipobj,当单击右键运行的时候发现它是一个zip对象,也就是说映射的结果是一个zip对象,根本没有看到里面的内容。如果想看到里面的内容,第一种方式可以使用list去进行转换。list内置函数就是将映射对象转成列表类型。将映射对象转成列表类型之后发现列表当中的元素是元组类型,第一个列表当中的元素做第一个元素,对应所有位置上元素是元组的第二个元素。

这个时候看到了转成列表之后里面的结果是什么?如何去把它转成字典?要把第10行注释掉,使用内置函数dict,然后把zipobj对象放进来,就是映射对象放进来,输出d,单击右键运行的时候发现这个时候输出的d才是真正的字典类型。

为什么要将第10行注释?因为如果不注释掉,zipobj就是映射对象里面内容已经转成列表类型了,所以不能再去转成字典了,因为它已经没有元素了,要把第10行注释掉之后再使用dict再去转。

·再去看一下还有一种创建字典的方式,使用参数创建字典,d=dict()里面就是赋值的这种形式,cat=10,dog=20赋了两个值,先在单击先把它输出,再单击右键运行,发现这个时候谁是键?cat是键就左边的是键,右侧的是值value了。

现在去创建一个元组,在这写个10,20、30元组当中的元素是10、20和30,现在去看一下可不可以使用元组去作为键?t冒号10,这是谁?t是键,就元组是键,10是value可不可以?单击右键运行一下,发现元组是可以作为字典当中键的,列表可不可以?列表lst=[10,20,30]。

列表和元组区别:元组使用小括号,列表使用方括号,这个时候去看一下lst去做键10去做值,当单击右键运行的时候发现程序报错了,告诉你lst是一个没有hash的,也就说什么列表是不可以去作为字典当中的键的。因为列表是可变数据类型,所以可以总结出来可变数据类型是不能作为字典当中的键的。

字典属于谁?字典属于序列,它是属于序列的,所以序列当中的方法可以使用,比如求最大值、最小值、长度,让它求max,运行一下,发现它告诉你最大值是谁,告诉你最大值是一个dog,最小值。再求一下长度,长度计算的是字典当中元素的个数,最大只是dog,最小只是cat,它的长度是2,说明里面有两个元素。

再去看一下字典的删除,del d,d是字典的名称,删除之后再输出一下,当删除之后再输出的时候发现它告诉你怎么样?没有定义了,也就说删除之后就不能在这里使用了。

在这有一个注意事项,注意事项是什么?字典当中键应该是无序的,但是在这里头写的时候发现第一个添加的是10,重新运行一下,第一个是20、20、30、40,发现它是有序的,可能会对你造成误解。

需要跟你说一件事情,就是字典当中键无序的这件事情永远是正确的,但是为什么现在看到的好像与添加顺序是一致?是因为在Python 3.6版本之后解释器进行了处理,所以看到的输出的顺序和添加顺序是一致的,是因为解释器做处理了。

当然如果愿意可以再去安装一个3.5的版本,3.5及之前的版本,这个时候就会看到键是无序的,

相关推荐

一文搞清 Python 中方法和函数之间的区别

在我们使用Python的过程中,经常涉及到方法和函数,那他们有什么不同吗?在本文中,让我们通过示例了解Python中方法和函数之间的区别。Python函数Python函数是一系列以特定顺序...

Python 数据分析 + 可视化实战:5 分钟出图表,老板看了直点赞

还在用Excel做数据分析?效率太低了!同样一份销售数据,同事用Python半小时出报告,图表炫酷还能自动更新;你用Excel捣鼓大半天,稍微改点数据就得重新做图。今天教你用Python...

Python每日一库之Pendulum(python penup)

关于日期处理,Python提供了许多库,例如标准库datetime、第三方库dateutil、Arrow等。在这篇文章中,我想介绍我个人最喜欢的库pendulum,它使用非常方便,它可以满足...

Python计算两个日期相差天数 M + ACT/360模式,银行计算利息用

一般银行在计算计息的时候,都会用到M+ACT/360模式,也就是满1个月按30天计算,不足一个月按实际天数计算。一年算360天。例如:计算20151018到20190817相差的天数,201...

Python 之 MySql 每日一练 32——查询每门课程的平均成绩

一、表名和字段–1.学生表student(s_id,s_name,s_birth,s_sex)–学生编号,学生姓名,出生年月,学生性别–2.课程表course(c_id,c_name,t...

用Python制作数据报告:如何自动生成PDF格式的报告?

最近在琢磨数据分析工作的自动化,手动做报告真是太费劲啦!试过用Python整了个自动生成PDF报告的小工具,效果还不错。今天就聊聊怎么用Python把数据处理、可视化和PDF生成一条龙搞定。repor...

Github 1.2k star,一个好用的 Python 库-pyexcel!

大家好,今天为大家分享一个好用的Python库-pyexcel。Github地址:https://github.com/pyexcel/pyexcelpyexcel是一个功能强大的Python...

使用python写一个简单的到期事件钉钉提醒功能

前言:学习python第3天需求:简单的事件提醒功能版本:python3.9、mysql5.71、现在mysql建一个表event_remindCREATETABLE`event_remind`...

python定时任务最强框架APScheduler详细教程

APScheduler定时任务上次测试女神听了我的建议,已经做好了要给项目添加定时任务的决定了。但是之前提供的四种方式中,她不知道具体选择哪一个。为了和女神更近一步,我把我入行近10年收藏的干货免费拿...

解放双手,一键运行!Python每日自动生成数据日报

对于一个企业来说,高层看意义,中层看结论,基层看落地,数据日报、周报、月报可以监控销售个人在实际执行过程中的销售动态,而数据季度报、年报可以反映一个销售策略是否与实际的业务场景切合。可见数据日报在我们...

Python模块datetime、calendar、logging、argparse、re用法

datetime模块:提供日期和时间相关的功能。importdatetime#获取当前日期和时间current_time=datetime.datetime.now()#格式化日期...

python入门到脱坑正则表达式—re.search()函数

re.search()是Python正则表达式模块re中的核心函数之一,用于在字符串中搜索匹配指定模式的第一个位置。与re.match()不同,它不限制匹配必须从字符串开头开始。基本语法...

python3从零学习-5.2.1、日历相关模块calendar

源代码:Lib/calendar.py这个模块让你可以输出像Unixcal那样的日历,它还提供了其它与日历相关的实用函数。默认情况下,这些日历把星期一当作一周的第一天,星期天为一周的最后一...

DAY6-step7 Python 示例说明CALENDAR

Python中的Calendar模块具有Calendar类,该类允许基于日期,月份和年份来计算各种任务。最重要的是,Python中的TextCalendar和HTMLCalendar类允许您编辑日历...

Python 数据分析——Pandas 时间序列

Pandas提供了表示时间点、时间段和时间间隔等三种与时间有关的类型,以及元素为这些类型的索引对象,并提供了许多时间序列相关的函数。一、时间点、时间段、时间间隔Timestamp对象从Python标准...

取消回复欢迎 发表评论: