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 🍹文章作者技术和水平很有限,如果文中出…

[go语言]数据类型

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

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…

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

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

深度学习(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…

2024.1.17每日一题

LeetCode 2744.最大字符串配对数目 2744. 最大字符串配对数目 - 力扣(LeetCode) 题目描述 给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称…

【ubuntu】docker中如何ping其他ip或外网

docker中如何ping其他ip或外网 示例图: 运行下面命令: docker run -it --namehei busybox看情况需要加权限 sudo,即: sudo docker run -it --namehei busyboxping 外网 ping -c 4 www.baidu.comping 内网 ping -c 4 192.168.…

【多线程】认识Thread类及其常用方法

📄前言: 本文是对以往多线程学习中 Thread类 的介绍,以及对其中的部分细节问题进行总结。 文章目录 一. 线程的 创建和启动🍆1. 通过继承 Thread 类创建线程🍅2. 通过实现 Runnable 接口创建线程🥦3. 其他方…

java转义字符

//转义字符的使用 public class ChangeChar{//编写一个main方法public static void main(String[] args){// \t :一个制表位,实现对齐的功能System.out.println("北京\t天津\t上海");// \n :换行符,实现换行System.out.println("jack\nsm…

Python-基础篇-类与对象/面向对象程序设计

文章目录 思维导图是何物类定义类📚 class类的成员📚类的继承性📚封装性📚多态性 对象面向对象📚创建对象📚销毁对象📚 类和对象关系必背必记专业英语学习角 思维导图 是何物 类 “类”是物以…

【算法实验】实验4

实验4-1 01背包 【问题描述】给定一个容量为C的背包,现有n个物品,每个物品的体积分别为s1,s2...sn,价值分别为v1,v2...vn。每个物品只能放入一次。背包最多能装入价值为多少的物品。 【输入形式】输入的第1行包含2个整数C和n,分别表示背包容…

C++大学教程(第九版)5.18进制表

目录 题目 代码 运行截图 题目 (进制表)编写一个程序要求打印一张表,内容是1~256范围内每个十进制数对应的二进制、八进制和十六进制形式。如果还不熟悉这些计数系统,可先阅读附录 D。提示:可以使用流操纵符dec、oct 和 hex来…