Python--字典及基本操作

news2024/11/6 10:00:22

字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。

比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。

为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。形象地看,字典中 key 和 value 的关联关系如图 1 所示:

 由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。

程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。

在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

二、字典的常用操作

编号操作说明
1字典[key]=value添加或更新键值对
2字典.pop(key)取出key对应的Value并在字典内删除此Key的键值对
3字典.clear()清空字典
4字典.keys()获取字典的全部key,可用于for循环遍历字典
5len(字典)计算字典内的元素数量
6字典[key]获取指定key对应的value值

一、代码演示 

1、新增元素

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
# 新增元素
my_dict["张信哲"]=66
print(f"新增之后的元素为:{my_dict}")

2、更新元素

my_dict["周杰伦"]=85
print(f"字典经过更新后,元素为:{my_dict}")

3、删除元素

my_dict.pop("张信哲")
print(f"字典中被删除了一个元素,结果:{my_dict}")

4、清空元素

my_dict.clear()
print(f"元素被清空后的结果为:{my_dict}")

5、获取全部的key

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
keys=my_dict.keys()
print(f"字典的全部key是:{keys}")

6、遍历字典

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
for i in my_dict:
    print(f"字典的key是:{i}")
    print(f"字典的value是:{my_dict[i]}")

7、统计字典内的元素数量 

# 统计字典内的元素数量
stu_score_dict={
    "王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":99,"数学":96,"英语":95},"林俊杰":{"语文":88,"数学":86,"英语":85}
}
count=len(stu_score_dict)
print(f"字典内的元素数量为:{count}")

三、字典的随堂小练习

有如下员工信息,请使用字典完成数据的记录
并通过for循环,对所有级别为1级的员工,级别上升一级,薪水增加1000元
姓名       部门      工资        级别
王力宏     科技部     3000        1
周杰伦     市场部     5000        2
林俊杰     市场部     7000        3
张学友     科技部     4000        1
刘德华     市场部     6000        2
"""
有如下员工信息,请使用字典完成数据的记录
并通过for循环,对所有级别为1级的员工,级别上升一级,薪水增加1000元
姓名       部门      工资        级别
王力宏     科技部     3000        1
周杰伦     市场部     5000        2
林俊杰     市场部     7000        3
张学友     科技部     4000        1
刘德华     市场部     6000        2
"""
dict_info={
    "王力宏":{"部门":"科技部","工资":3000,"级别":1},
    "周杰伦":{"部门":"市场部","工资":5000,"级别":2},
    "林俊杰":{"部门":"市场部","工资":7000,"级别":3},
    "张学友":{"部门":"科技部","工资":4000,"级别":1},
    "刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"全体员工当前信息如下")
print(dict_info)
print(f"全体员工级别为1的员工完成升职加薪操作,操作后:")

# for循环遍历字典
for name in dict_info:
    # if条件判断符合条件员工
    if dict_info[name]["级别"]==1:
        # 修改员工的信息
        dict_info[name]["级别"]+=1
        dict_info[name]["工资"]+=1000

print(dict_info)

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

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

相关文章

传统目标跟踪——背景分割法

目录 一、背景分割法 二、流程 三、代码 四、总结 一、背景分割法 传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法。但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果。 现代的背景分割算法融入…

便宜的骨传导耳机好用吗?五款便宜的骨传导耳机推荐

市面上的骨传导耳机价格参差不齐,那价位较低的骨传导耳机能不能入手呢?只能说“一分钱,一分货”但是一些大牌骨传导耳机品牌也会出一些性价比较高的骨传导耳机,依靠大牌技术的加持,耳机的使用体验也会更好。可以看看下…

抓住站点能源革命机遇,必须要了解的十大趋势

编辑 | 阿冒 设计 | 沐由每一天,你做得最多的几件事情是什么?喝八回水,吃三次饭,还有空闲的时候起身溜达几圈,以及穿插其间、难以计数的查看手机次数?可以说,我们中的绝大多数每天在手机上花…

告别丑陋判空,一个Optional类就能搞定

认识Optional Opitonal类就是Java提供的为了解决大家平时判断对象是否为空用,通常会用 null!obj 这样的方式存在的判断,从而令人头疼导致空指针异常,同Optional的存在可以让代码更加简单,可读性跟高,代码写起来更高效…

剑指 Offer 16. 数值的整数次方

题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 思路 快速幂算法 求 x^n最简单的方法是通过循环将 n 个 x 乘起来,依次求 x1,x2,...,x^n,…

【微服务】Nacos 注册中心服务数据模型

目录 一、前言 二、服务(Service)和服务实例(Instance) 1、定义服务 2、服务元数据 3、定义实例 4、实例元数据 5、持久化属性 三、集群 1、定义集群 四、生命周期 1、服务的⽣命周期 2、实例的⽣命周期 3、集群的⽣命…

使用Comsol完成固体火箭装药的燃面推移

简介 为了计算固体火箭发动机的内弹道曲线,必须知道燃面面积随烧去肉厚的变化关系。目前主要有实体造型法、动网格法、水平集法等。笔者给出一种直接使用Comsol有限元软件完成燃面推移的方法,使用简便快捷,无需编写代码。 理论部分可参考论…

API风险

©网络研究院 从表面上看,API帮助企业连接应用程序并相互共享数据。这为客户和用户创造了更简单、更无缝的体验。 如果你曾经使用你的谷歌账户登录过多个网站或应用程序,那么你很有可能使用的是谷歌开发的API。 像这样的API在后台工作&#xff0c…

极狐gitlab-runner的安装

1)下载系统对应的二进制文件 # Linux x86-64 sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 2)赋予执行权限 chmod x /usr/local/bin/gitlab-runne…

Faster RCNN网络源码解读(Ⅱ) --- Faster RCNN源码使用

目录 一、源码链接 二、环境配置 三、文件结构 四、预训练权重下载地址 五、训练集 六、训练方法及注意事项 七、大概看一下训练过程(train_mobilenetv2.py) 一、源码链接 Faster R-CNN源码链接https://pan.baidu.com/s/1SQjyLXD47H11ke05OXY…

基于javaweb的学院社团管理系统(idea+servlet+jsp)

一、系统简介 本项目采用idea工具开发,jspservletjquery技术编写,数据库采用的是mysql,navicat开发工具。 系统一共分为3个角色分别是:管理员,学生,社长 获取方式:基于javaweb的学院社团管理系…

VisualStudio2015安装不上的解决方法_选择对应msi_依然报错继续选择---VisualStudio2015工作笔记001

这个visualstudio网上竟然有卖的,真的是太~咱啥也不说了~ 好了说解决办法吧; 1.这里完整版大小挺大的6G多,但是这里我们找的有可能是只有3.8G左右的,这个版本的就是有文件损坏...但是这个版本是可以装上的,也不耽误用的,我亲自测试了. 2.因为很久没写vb.net程序了,想写个小程…

Docker中安装宝塔

1、docker拉取ubuntu系统 docker pull ubuntudocker pull ubuntu 2、运行容器 docker run -i -t -d --name bt -p 2000:20 -p 2100:21 -p 8000:80 -p 4430:443 -p 8880:888 -p 8888:8888 --privilegedtrue -v /d/baota:/www/wwwroot ubuntu -v后的/d/baota代表本地D盘的bao…

【LeetCode】二叉树中的最大路径和 [H](递归)

124. 二叉树中的最大路径和 - 力扣(LeetCode) 一、题目 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一…

擎创技术流 | ClickHouse实用工具—ckman教程(8)

2022年即将迎来终点,各大公司和网站开始出“年终使用报告”了,而关于ClickHouse系列分享也来到了尾期。本系列最初一共规划了10期内容,一转眼就只剩最后2期了,初衷就是单纯的技术分享,如果你能从中得到启发&#xff0c…

圣诞节来临,TikTok上圣诞相关产品销量突破5万单丨超店有数

12月25日,圣诞节正式来临。TikTok卖家和达人如何把握住这个一年一度的「西方春节」,如何实现精准选品,快速爆单。凡事预则立,不预则废。快人一步,掌握趋势,抢占先机。 从谷歌趋势观察,一周内「…

图说Netty服务端启动过程

我们知道Netty是一个基于JDK的nio实现的网络编程框架,那Netty的服务端是怎么启动的呢,包括他是何时register 的,何时 bind 端口的,以及何时开始读取网络中的数据的? 让我们带着这个疑问,通过一个官方的例子…

webRTC 实现人脸识别

首先我们需要先了解一下什么是webRTC 他能做什么 webRTC主要是帮我们处理多媒体应用,如音视频通话,屏幕共享都可以实现,主要基于浏览器API调用,其底层浏览器会调用native C 等一些库帮我们实现的,而我们在应用层掉API …

欧科云链荣获人民网匠心技术奖,科技创新共造企业发展“强引擎”

什么是匠心精神? 是简单的事情重复做 重复的事情用心做 是对自己热爱的事物 不断坚持、不断钻研的精神 昨日,由人民网主办的“2022人民财经高峰论坛”成功举办,论坛还公布了“第十九届人民匠心奖”获奖名单。欧科云链携旗下“链上天眼”产品荣…

第三十七章 数论——博弈论

第三十七章 数论——博弈论一、Nim游戏1、题目2、结论3、结论验证4、代码二、台阶——Nim游戏1、问题2、思路2、代码三、集合——Nim游戏1、问题2、思路—SG()函数2、代码实现(记忆化搜索)一、Nim游戏 1、题目 2、结论 这里直接说结论: 假设…