Python数据容器(字典)
字典
- 1.字典的定义
- 2.字典数据的获取
- 3.字典的嵌套
- 4.嵌套字典的内容获取
- 5.字典的常用操作
- 6.常用操作总结
- 7.遍历字典
- 8.练习
1.字典的定义
同样使用{},不过存储的元素是一个一个的:键值对,语法如下
# 定义字典字面量
{key:value,key:value,...,key:value}
# 定义字面量
my_dict = {key:value,key:value,...,key:value}
# 定义空字典
my_dict = {}
my_dict = dict{}
# 学生成绩
stu_score = {"王力宏":99,"周杰伦":88,"林俊杰":77}
print(stu_score) # 结果 {'王力宏': 99, '周杰伦': 88, '林俊杰': 77}
2.字典数据的获取
字典同集合一样,不可以使用下标索引,但是可以通过Key值来获取对应的Value
# 学生成绩
stu_score = {"王力宏":99,"周杰伦":88,"林俊杰":77}
print(stu_score["王力宏"]) # 结果 99
print(stu_score["周杰伦"]) # 结果 88
print(stu_score["林俊杰"]) # 结果 77
3.字典的嵌套
| 姓名 | 语文 | 数学 | 英语 |
|---|---|---|---|
| 王力宏 | 77 | 66 | 33 |
| 周杰伦 | 88 | 86 | 55 |
| 林俊杰 | 99 | 96 | 66 |
# 代码
stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}}
# 优化代码
stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
4.嵌套字典的内容获取
stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
print(stu_score["王力宏"]) # 结果 {'语文': 77, '数学': 66, '英语': 33}
print(stu_score["王力宏"]["语文"]) # 结果 77
print(stu_score["周杰伦"]["数学"]) # 结果 86
5.字典的常用操作
- 新增元素
- 语法:字典[Key] = Value
- 结果:字典被修改,新增了元素
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
# 新增,张学友的考试成绩
stu_score["张学友"]=66
print(stu_score) # 结果 {'王力宏': 77, '周杰伦': 88, '林俊杰': 99, '张学友': 66}
- 更新元素
- 语法:字典[Key] = Value
- 结果:字典被修改,元素被更新
注意:字典Key不可以重复,所以是对已存在Key执行的操作,更改的是value的值
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
# 更新,王力宏的考试成绩
stu_score["王力宏"]=100
print(stu_score) # 结果 {'王力宏': 100, '周杰伦': 88, '林俊杰': 99}
- 删除元素
- 语法:字典.pop(Key)
- 结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
value= stu_score.pop("王力宏")
print(value) # 结果 77
print(stu_score) # 结果 {'周杰伦': 88, '林俊杰': 99}
- 清空字典
- 语法:字典.clear()
- 结果:字典被修改,元素被清空
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
stu_score.clear()
print(stu_score) # 结果 {}
- 获取全部的Key
- 语法:字典.keys()
- 结果:得到字典中全部的Key
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
keys = stu_score.keys()
print(keys) # 结果 dict_keys(['王力宏', '周杰伦', '林俊杰'])
- 计算字典内的全部元素(键值对)数量
- 语法:len(字典)
- 结果:得到一个整数,表示字典元素(键值对)数量
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
print(len(stu_score)) # 结果 3
6.常用操作总结
| 编号 | 操作 | 说明 |
|---|---|---|
| 1 | 字典[Key] | 获取指定Key对应的Value值 |
| 2 | 字典[Key]=Value | 添加或更新键值对 |
| 3 | 字典.pop(Key) | 取出Key对应的Value并在字典内删除此Key的键值对 |
| 4 | 字典.clear() | 清空字典 |
| 5 | 字典.keys() | 获取字典的全部Key,可用于for循环遍历字典 |
| 6 | len(字典) | 计算字典内元素数量 |
7.遍历字典
注意:字典不支持下标索引,不可以使用while循环
- for循环遍历
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
keys = stu_score.keys()
for key in keys:print(f"学生{key}的分数是:{stu_score[key]}")
## 结果
学生王力宏的分数是:77
学生周杰伦的分数是:88
学生林俊杰的分数是:99
8.字典的特点
- 可以容纳多个数据
- 可以容纳多个不同类型的数据
- 每一份数据都是KeyValue键值对
- 可以通过Key获取到Value,Key不可以重复
- 不支持下标索引
- 可以修改(增加或删除更新元素)
- 支持for循环
8.练习

# 定义字典
information = {"王力宏":{"部门":"科技部","工资":3000,"级别":1},"周杰伦":{"部门":"市场部","工资":5000,"级别":2},"林俊杰":{"部门":"市场部","工资":7000,"级别":3},"张学友":{"部门":"科技部","工资":4000,"级别":1},"刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"全体员工当前信息如下{information}")
keys = information.keys()
# for循环遍历
for key in keys:if information[key]["级别"] == 1:# 升职加薪操作information[key]["级别"] += 1information[key]["工资"] += 1000
print(f"升职加薪操作之后,信息如下{information}")
## 输出
全体员工当前信息如下{'王力宏': {'部门': '科技部', '工资': 3000, '级别': 1}, '周杰伦': {'部门': '市场部', '工资': 5000, '级别': 2}, '林俊杰': {'部门': '市场部', '工资': 7000, '级别': 3}, '张学友': {'部门': '科技部', '工资': 4000, '级别': 1}, '刘德华': {'部门': '市场部', '工资': 6000, '级别': 2}}
升职加薪操作之后,信息如下{'王力宏': {'部门': '科技部', '工资': 4000, '级别': 2}, '周杰伦': {'部门': '市场部', '工资': 5000, '级别': 2}, '林俊杰': {'部门': '市场部', '工资': 7000, '级别': 3}, '张学友': {'部门': '科技部', '工资': 5000, '级别': 2}, '刘德华': {'部门': '市场部', '工资': 6000, '级别': 2}}
相关文章:
Python数据容器(字典)
字典 1.字典的定义2.字典数据的获取3.字典的嵌套4.嵌套字典的内容获取5.字典的常用操作6.常用操作总结7.遍历字典8.练习 1.字典的定义 同样使用{},不过存储的元素是一个一个的:键值对,语法如下 # 定义字典字面量 {key:value,key:value,...,…...
餐饮展示小程序的作用是什么
餐饮是市场重要的组成部分,尤其是我国八大菜系,各类细分菜数量非常多,并分布在全国,各类大小品牌餐饮商家数量也非常庞大,每个城市的商业街都是一个接一个餐厅,酒类、酒店多样。 餐饮行业经营痛点比较明显…...
33、Flink 的Table API 和 SQL 中的时区
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
Origin:科研绘图与学术图表绘制从入门到精通
文章目录 一、引言二、安装和启动Origin三、创建和保存图表四、深入学习Origin绘图功能五、应用Origin进行科研绘图和学术图表绘制六、总结与建议《Origin科研绘图与学术图表绘制从入门到精通》亮点内容简介作者简介目录获取方式 一、引言 Origin是一款功能强大的数据分析和科…...
腾讯云标准型SA4服务器AMD处理器性能测评
腾讯云服务器标准型SA4实例CPU采用AMD处理器,新一代腾讯云自研星星海双路服务器,搭配AMD EPYC Genoa处理器,内存采用最新 DDR5,默认网络优化,最高内网收发能力达4500万pps,最高内网带宽可支持100Gbps。阿腾…...
LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)
【LetMeFly】2656.K 个元素的最大和:一次遍历(附Python一行版代码) 力扣题目链接:https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/ 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操…...
element-ui中Form表单使用自定义验证规则
data() {const validatePass (rule, value, callback) > {if (value.length < 3) {callback(new Error("密码不能小于3位"));} else {callback();}};return {rules: {password: [{ required: true, trigger: "blur", validator: validatePass },]}}…...
android源码添加adb host支持
本文开始参考在 android 上使用 adb client-CSDN博客,在shell中已经可以使用。但当我想在app中用 String command "/data/local/tmp/adb -s 307ef90dc8128844 shell ls";StringBuilder output new StringBuilder();try {Process process Runtime.getR…...
学习c#的第二天
目录 C# 基本语法 using 关键字 class 关键字 C# 中的注释 成员变量 成员函数 类的实例化 标识符 C# 关键字 C# 基本语法 C# 是一种面向对象的编程语言。在面向对象的程序设计方法中,程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&…...
CodeWhisperer 使用经验分享
今天给大家分享一下 Amazon CodeWhisperer 编程工具(免费哦),使用这个软件后我的编码质量提升不少,给大家分享一下我的经验。希望大家支持哦。 Amazon CodeWhisperer 是亚⻢逊出品的一款基于机器学习的 AI 编程助手,可…...
数据结构与算法之美学习笔记:18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?
目录 前言散列思想散列函数散列冲突解答开篇 前言 本节课程思维导图: Word 的单词拼写检查功能,虽然很小但却非常实用。你有没有想过,这个功能是如何实现的呢?其实啊,一点儿都不难。只要你学完今天的内容,…...
解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol
java发送邮件时报以下错误信息: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher [com.bm6api.controller.v1.AppUserController] - sendLoginAuthCodeMail 发送登录验证码邮件 : {"code":200,"inf…...
杭电oj 2035 人见人爱A^B C语言
#include<stdio.h>void main() {int a, b, i,num;while (~scanf_s("%d%d", &a, &b) && (a ! 0 || b ! 0)){num a;for (i 1; i < b; i){num * a;num % 1000;}printf("%d\n", num);} }...
[量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理
一个完成的程序一定少不了对异常的处理,以及错误日志的输出。 在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。 [量化投资-学习笔记016]PythonTDengine从零开始搭建量化分析平台-日志输出 异常处理 Python 通常使用 try .. except 和防…...
Mysql中的索引与事务和B树的知识补充
索引与事务和B树的知识补充 一.索引1.概念2.作用3.使用场景4.使用 二.事务1.为什么使用事务2.事务的概念3.使用3.1脏读问题3.2不可重复读3.3 幻读问题3.4解决3.5 使用代码 三.B树的知识补充1.B树2.B树 一.索引 1.概念 索引是一种特殊的文件,包含着对数据表里所有记…...
2024上海国际智能驾驶技术展览会(自动驾驶展)
2024上海国际智能驾驶技术展览会 2024 Shanghai International Autonomous driving Expo 时间:2024年3月26-28日 地点:上海跨国采购会展中心 随着科技的飞速发展,智能驾驶已经成为了汽车行业的重要趋势。在这个时代背景下,汽车不…...
嵌入式Linux开发,NFS文件系统挂载
在嵌入式linix的开发中,经常会需要在pc端和板端互相传输文件,优先可选择ftp传输,但是有些嵌入式板端不支持,只能使用nfs这种方式,即pc端作为服务端,板端作为客户端,将pc端的某个文件夹挂载到板端…...
什么是3D建模中的“高模”和“低模”?
3D建模中什么是高多边形和低多边形? 高多边形建模和低多边形建模之间的主要区别正如其名称所暗示的那样:您是否在模型中使用大量多边形或少量多边形。 然而,在决定每个模型的细节和多边形级别时,还需要考虑其他事项。最值得注意的…...
python数据结构与算法-04_队列
队列和栈 前面讲了线性和链式结构,如果你顺利掌握了,下边的队列和栈就小菜一碟了。因为我们会用前两章讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似,队列是先进先出结构(FIFO, first in first out), 栈是…...
从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景
文章目录 BIO优缺点示例代码 NIO优缺点示例代码 AIO优缺点示例代码 总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 BIO、NIO和AIO是Java编程语言中用于处理输入输出(IO…...
3步搭建高效NTQQ机器人:LuckyLilliaBot全功能配置指南
3步搭建高效NTQQ机器人:LuckyLilliaBot全功能配置指南 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot是一款基于OneBot11协议的NTQQ机器人框架,它能帮助开发…...
汽车动力性能计算工具插件:一键测算电机需求与整车性能,工程师专属轻量级辅助软件
温馨提示:文末有联系方式插件核心功能亮点 本款汽车动力性系统专用计算小工具,可精准推演电机功率与扭矩需求,同步输出整车加速性能、最大爬坡度、最高稳定车速等关键动力参数,覆盖常规工况与典型驱动场景,满足前期方案…...
从芯片设计到产线测试:深入浅出聊聊DFT中的SCAN链设计与JTAG标准(含IEEE 1149.1)
从芯片设计到产线测试:深入浅出聊聊DFT中的SCAN链设计与JTAG标准(含IEEE 1149.1) 在芯片设计领域,可测试性设计(DFT)早已从"锦上添花"变成了"不可或缺"的核心环节。想象一下࿰…...
电力系统输电线路距离保护建模与仿真:方向阻抗继电器探秘
1.电力系统输电线路距离保护的建模与仿真matlab/simulink仿真模型 2.方向阻抗继电器 (1)“0度接线”方向阻抗继电器的构造 (2)“相电压和具有K3I0补偿的相电流接线”的方向阻抗继电器模块的构造在电力系统中,输电线路距…...
保姆级教程:用LongCat动物百变秀,快速给猫狗加帽子、换造型
保姆级教程:用LongCat动物百变秀,快速给猫狗加帽子、换造型 1. 为什么选择动物百变秀? 给宠物照片添加创意元素一直是许多人的需求,但传统方法要么需要专业PS技能,要么效果生硬不自然。LongCat动物百变秀解决了这个痛…...
Python并发安全性重构白皮书(GIL禁用场景下的原子操作黄金标准)
第一章:Python并发安全性重构白皮书(GIL禁用场景下的原子操作黄金标准)当通过 PyPy、Cython(启用 nogil)、或 Python 3.12 的实验性子解释器(PEP 684)等路径绕过全局解释器锁(GIL&am…...
QT图形界面开发集成Phi-4-mini-reasoning:打造智能桌面应用
QT图形界面开发集成Phi-4-mini-reasoning:打造智能桌面应用 1. 智能桌面应用的新可能 传统桌面应用开发正在经历一场智能化变革。想象一下,你的QT应用不仅能响应用户操作,还能理解用户意图、自动生成内容、提供智能建议——这就是集成Phi-4…...
【分布式理论】CAP PACELC
文章目录一、引言二、CAP理论2.1 CAP分别指的是什么?2.2 CAP 的经典表述:三选二2.1 CP 系统(牺牲可用性,保证一致性)2.2 AP 系统(牺牲一致性,保证可用性)三、PACELC理论3.1 PACELC的…...
Nomic-Embed-Text-V2-MoE实战:基于卷积神经网络(CNN)的图文多模态检索
Nomic-Embed-Text-V2-MoE实战:基于卷积神经网络(CNN)的图文多模态检索 你有没有想过,让电脑像人一样,既能看懂图片,又能理解文字,还能把两者联系起来?比如,你拍一张商品…...
YimMenu:GTA5游戏体验增强工具全攻略
YimMenu:GTA5游戏体验增强工具全攻略 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 核心痛点…...
