06-数据容器(字典)基础知识0基础来学

image-20231026210813585

为什么需要字典

image-20231026210913935

可以提供通过某个东西找到某个东西

image-20231026211046713

image-20231026211142936

"""
演示数据容器字典的定义
​
"""
#定义字典
my_dict1={"王力宏":99,"周结论":88,"林俊杰":77}
#定义空字典
my_dict2={}
my_dict3=dict()
print(f"字典1的内容是:{my_dict1},类型是:{type(my_dict1)}")
print(f"字典2的内容是:{my_dict2},类型是:{type(my_dict2)}")
print(f"字典3的内容是:{my_dict3},类型是:{type(my_dict3)}")

image-20231026211953395

定义重复Key的字典

image-20231026212304164

很显然此时已经有黄色提醒了

#定义重复Key的字典
my_dict1={"王力宏":99,"王力宏":99,"林俊杰":77}
print(f"重复Key的字典内容是:{my_dict1}")

image-20231026212354464

运行后也发现,重复的内容也已经被去掉了,留下的内容是不重复的

字典数据的获取由key取到value

image-20231026213119267

#从字典重基于key值获取value
my_dict1={"王力宏":99,"周结论":88,"林俊杰":77}
score=my_dict1["王力宏"]
print(f"王力宏的考试分数是:{score}")

image-20231026213431220

字典的嵌套

image-20231026214623423

#定义嵌套字典
stu_score_dict={"王力宏":{"语文":77,"数学":66,"英语":55},"周杰轮":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
print(f"学生的考试信息是:{stu_score_dict}")

image-20231026215933444

#定义嵌套字典
stu_score_dict={"王力宏":{"语文":77,"数学":66,"英语":55},"周杰轮":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
# print(f"学生的考试信息是:{stu_score_dict}")
#从嵌套字典重获取数据
#看一下周杰伦的语文信息
score=stu_score_dict["周杰轮"]["语文"]
print(f"周杰伦的语文成绩是:{score}")

image-20231026220452019

image-20231026220708210

数据容器(字典)–常用操作

新增元素-更新元素

image-20231028160753905

"""
演示字典的常用操作
"""
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
#新增元素
my_dict["张信者"]=66
print(f"字典新增元素后,结果:{my_dict}")
#更新元素
my_dict["周结论"]=33
print(f"字典更新元素后,结果:{my_dict}")

image-20231028161439422

删除元素-清空字典

image-20231028161534887

#删除元素
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
score =my_dict.pop("周结论")#用pop取出周结论的成绩,同时还能删除key 和value
print(f"字典中被移除一个元素后结果是:{my_dict},周结论的分数是:{score}")

image-20231028162148799

#清空字典
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
my_dict.clear()
print(f"字典清空后的结果为:{my_dict}")

image-20231028162436495

获取全部的key

image-20231028162532090

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

image-20231028162843129

获取全部的key能用来干什么?

遍历获取到key,而后依次通过key获取value

#遍历字典,通过key去取value
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
keys=my_dict.keys()
for key in keys:print(f"字典的key是:{key}")print(f"字典的value是:{my_dict[key]}")#用key对应的方法去取value

image-20231028163426691

#遍历字典,通过key去取value,方式2:直接对字典进行for循环,每一次循环都是直接得到key
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
for key in my_dict:#直接对字典进行取出print(f"字典的key是:{key}")print(f"字典的value是:{my_dict[key]}")

image-20231028164049358

两者效果一样。但是注意:字典不支持用下标索引,所以不能用while循环

统计字典内的元素数量len()

#统计字典内的元素数量,len()函数
my_dict={"周结论":99,"林俊杰":88,"张学友":77}
num=len(my_dict)
print(f"字典中的元素数量有:{num}个")

image-20231028164506623

字典常用操作总结

image-20231028164706082

字典的特点

image-20231028165236067

image-20231028165458490

字典课后练习题–升职加薪

image-20231028171649105

"""
演示字典的课后练习,升职加薪,对所有级别为1的员工,级别上升1级,工资增加1000
"""
#组织字典记录数据
info_dict={"王力宏":{"部门":"科技部","工资":3000,"级别":1},"周杰伦":{"部门":"市场部","工资":5000,"级别":2},"林俊杰":{"部门":"市场部","工资":7000,"级别":3},"张学友":{"部门":"科技部","工资":4000,"级别":1},"刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"在员工升职加薪之前的结果是:{info_dict}")
#for循环遍历字典
for name in info_dict:#if条件判断符合条件员工if info_dict[name]["级别"]==1:#升职加薪操作#获取到员工的信息字典employee_info_dict=info_dict[name]#修改员工的信息字典employee_info_dict["级别"]=2#级别+1employee_info_dict["工资"]+=1000#工资+1000#将员工的信息更新回info_dictinfo_dict[name]=employee_info_dict
#输出结果
print(f"对员工进行升职加薪的结果是:{info_dict}")

image-20231028174241363

级别从1到2,工资从1000升到2000

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

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

相关文章

软件设计师6--流水线技术

软件设计师6--流水线技术 考点1:流水线--概念考点2:流水线--流水线计算考点3:流水线--流水线吞吐率计算例题: 考点1:流水线–概念 相关参数计算: 流水线执行时间计算、流水线吞吐率、流水线加速比、流水线…

Verilog刷题笔记15

题目: An adder-subtractor can be built from an adder by optionally negating one of the inputs, which is equivalent to inverting the input then adding 1. The net result is a circuit that can do two operations: (a b 0) and (a ~b 1). See Wikipe…

力扣刷MySQL-第四弹(详细讲解)

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:力扣刷题讲解-MySQL 🍹文章作者技术和水平很有限,如果文中出…

JavaScripts笔记I(基础)

JavaScripts基础 js是一门编程语言,可以实现很多的网页交互效果。 JavaScript脚本语言具有以下特点: (1)脚本语言。JavaScript是一种解释型的脚本语言,C、C等语言先编译后执行,而JavaScript是在程序的运行过程中逐行…

macOS - md5 | md5sum

文章目录 简单使用介绍文档Linux - md5summacOS - md5 大文件传输是否完整,你可以使用 md5 进行校验 linux 上使用 md5sum 命令,在macOS 上 md5 命令是和 md5sum 等效的 简单使用介绍 参考:https://blog.csdn.net/cnds123321/article/detail…

[go语言]数据类型

目录 知识结构 整型、浮点型 1.整型 2.浮点型 复数、布尔类型 1.复数 2.布尔类型 字符与字符串 1.字符串的格式化 2.字符串的截取 3.格式化好的字符串赋值给量 4.字符串的转换 5.strings包 知识结构 整型、浮点型 1.整型 在Go语言中,整型数据是一种基…

计算机基础之输入设备,输出设备及中央处理器

输入、输出设备和中央处理器 输入设备 输入设备用于接收用户输入的命令、程序、图像和视频等,专门负责将现实中的信息转换成计算机能识别的二进制编码,并放入内存。是计算机与用户或其他设备通信的桥梁。 常用的输入设备: 键盘&#xff1…

MySQL三大日志

1. redo log 1.1 特点 InnoDB存储引擎独有物理日志,记录在数据页上做的修改让MySQL拥有了崩溃恢复能力,保证事务的持久性 1.2 刷盘时机 事务提交时log buffer 空间使用大约一半时事务日志缓冲区满InnoDB 定期执行检查点Checkpoint后台刷新线程&#…

短视频代运营抖音项目规划管理计划模板

【干货资料持续更新,以防走丢】 短视频代运营抖音项目规划管理计划模板 部分资料预览 资料部分是网络整理,仅供学习参考。 短视频代运营模板(完整资料包含以下内容) 目录 具体的表格设计和内容可能因不同的情况和需求而有所变…

移动端开发进阶之蓝牙通讯(四)

移动端开发进阶之蓝牙通讯(四) 在移动端开发实践中,可能会要求在不同的设备之间切换,从而提升用户体验; 或者为了提升设备的利用率,实现设备之间的连接和协同工作; 不得不通过多端连接,将多个设备连接在一起,实现设备之间的数据共享、远程控制等功能,根据具体的应用…

STC8H8K蓝牙智能巡线小车——1. 环境搭建(基于RTX51操作系统)

1. 基本介绍 开发环境准备:Keil uVision5 烧录软件:STC-ISP(V6.92A) 芯片: STC8H8K64U-45I-LQFP64 芯片引脚: 2.创建项目 打开Keil,点击【Project】,选择【new uVersion proje…

LeetCode刷题16:滑动窗口解决209. 长度最小的子数组

题目陈述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1&a…

RPM命令详解2---查询验证

一、RPM查询 rpm {-q|–query} [select-options] [query-options] select-options [PACKAGE_NAME] [-a,–all] [-f,–file FILE] [-g,–group GROUP] {-p,–package PACKAGE_FILE] [–hdrid SHA1] [–pkgid MD5] [–tid TID] [–querybynumber HDRNUM] [–triggeredby PACKAGE…

【控制篇 / 分流】(7.4) ❀ 03. 对国内和国际IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网,一条电信,一条IPLS国际专线,由于IPLS仅有2M,且价格昂贵,领导要求,访问国内IP走电信,国际IP走IPLS,那么应该怎么做? 国内IP地址组 我们已…

Spring之BeanDefinition

BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。 比如: - class,表示Bean类型 - scope,表示Bean作用域,单例或原型等 - lazyInit:表示Bean是否是懒加载…

JavaScript之判断是否整数、取余、取整、进制、位或、ES6

MENU 方法一方式二方式三方式四方式五结束语 方法一 使用取余运算符判断,利用任何整数都会被1整除的原理,即余数是0的特点,通过这个规则来判断是否是整数。 let isInteger (val) > val % 1 0;// true isInteger(5); // false isInteger(…

ERP办公系统如何选择阿里云服务器?

公司OA、ERP等办公系统如何选择阿里云服务器配置?可以选择第七代企业级独享型云服务器,ECS通用型g7、计算型c7或内存型r7实例,4核CPU8G内存、8核16G、4核16G等配置,活动 https://t.aliyun.com/U/bLynLC 实例规格使用场景vCPU内存…

深度学习(2)--卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。 一.卷积网络基础概念 传统网络是一维的,而卷积网络是三维的。 例如32x32x3的图片,在传统网…

滑动窗口经典入门题-——长度最小子数组

文章目录 算法原理题目解析暴力枚举法的代码优化第一步初始化第二步right右移第三步left右移 滑动窗口法的代码 算法原理 滑动窗口是一种在序列(例如数组或链表)上解决问题的算法模式。它通常用于解决子数组或子字符串的问题,其中滑动窗口表示…

C#: form 窗体的各种操作

说明:记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…