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

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

off999 2024-11-02 12:32 28 浏览 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及之前的版本,这个时候就会看到键是无序的,

相关推荐

Ubuntu 操作系统常用命令详解_ubuntu各种命令

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

秒变万能家庭服务器!斐讯N1 armbian安装指南

一直以来,我都想配置一台小型服务器放在家里玩一玩,但是x86架构的主机体积大功耗高,价格也不低。而树莓派的话,价格便宜一点,性能对于轻度使用也基本够用。可是树莓派仍然要两三百块钱,感觉还是有点贵。于是...

浏览器里跑Windows XP?开发者硬核复现,免安装还能玩扫雷、纸牌接龙,网友直呼:爷青回!

整理|苏宓出品|CSDN(ID:CSDNnews)你还记得上一次用WindowsXP是什么时候吗?这个诞生于2001年的操作系统,曾因操作简单、性能提升、兼容性好,迅速成为一代人...

阿里云安装飞牛教程,这次待机0功耗了

把照片、聊天记录、工作文件一股脑儿塞进网盘,却突然发现账号被封、文件被删,那一刻像被人扒光了扔大街上。昨晚,我在阿里云花29块买了台最便宜的VPS,折腾三小时,把Nextcloud装进这台小机器,手机...

【入门】【失败】Linux下mysql-8.0.22-linux-x64.tar.gz 安装

因为系统环境的一些问题,最后安装失败这篇文章只保留过程一些笔记做参考创建MySQL用户和组sudogroupaddmysqlsudouseradd-r-gmysql-s/bin/...

Jenkins 安装与部署完整指南_jenkins安装与配置windows

Jenkins安装与部署完整指南Jenkins是一款开源的自动化服务器,常用于持续集成(CI)和持续交付(CD)。本文将介绍在Linux、Windows、macOS三大平台上的安装与部署步骤,...

Nacos 安装教程_nacos安装部署

Nacos安装与生产部署增强版教程(Windows&Linux)Nacos是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,支持几乎所有主流类型服务的发现、配置和管理。加入了版本匹配...

Linux开机自启服务完全指南:3步搞定系统服务管理器配置

为什么需要配置开机自启?想象一下:电商服务器重启后,MySQL和Nginx没自动启动,整个网站瘫痪!这就是为什么开机自启是Linux运维的必备技能。自启服务能确保核心程序在系统启动时自动运行,避免人工...

centos nginx docker-compose安装

一、nginx及docker文件准备1、docker-compose.ymlversion:'3'services:nginx:restart:always...

Nginx合集-高可用(Keepalived)_高可用 nginx

Keepalived简介Keepalived是Linux下一个轻量级别的高可用解决方案。高可用:广义来讲,是指整个系统的高可用行;狭义的来讲就是主机的冗余和接管。它与HeartBeat实现类似的功能,...

Nginx 笔记_nginx最全教程

gcc#可能需要安装C++yum-yinstallgcc-c++installnginxbybashcd/usr/local/src##@seehttp://nginx...

JAVA面试|nginx如何解决跨域问题_nginx解决跨域问题原理

核心思想:跨域问题是浏览器的安全限制,不是服务器本身拒绝通信。Nginx作为强大的反向代理服务器,可以通过在响应中添加特定的HTTP头信息(CORS头),告诉浏览器:“这个跨域请求是我允许的,你可...

Nginx主从架构详解(图文全面总结)

Nginx是大型架构的必备技能,下面我重点详解Nginx主从架构@mikechen文章来源:mikechen.ccNginx主从在大规模Web应用和高可用部署中,Nginx作为高性能反向代理与负...

Nginx动静分离详解(原理+配置+实战)

Nginx动静分离是一种常见的Web服务优化技术,Nginx动静分离可以更好的提升性能@mikechen文章来源:mikechen.ccNginx动静分离动静分离,顾名思义,就是将Web应用中...

大文件传不动?WinRAR/7-Zip 入门到高手,这 5 个技巧让你效率翻倍

“这200张照片怎么传给女儿?微信发不了,邮箱附件又超限……”62岁的张阿姨对着电脑犯愁时,儿子只用了3分钟就把照片压缩成一个文件,还教她:“以后用压缩软件,比打包行李还方便!”职场人更懂这...

取消回复欢迎 发表评论: