数据容器-dict以及总结-Python

师从黑马程序员

字典的定义

同样使用{},不过存储的元素是以个个的:键值对,如下语法:

#定义字典
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"字典2的内容是:{my_dict3},类型:{type(my_dict3)}")
#定义重复Key的字典
my_dict1={"周杰伦":99,"周杰伦":88,"林俊杰":77}
print(f"字典1的内容是:{my_dict1},类型:{type(my_dict1)}")

注:字典同集合一样,不可以使用下标索引

但是字典可以通过Key值来取得对应的Value

my_dict1={"王力宏":99,"周杰伦":88,"林俊杰":77}
score=my_dict1["王力宏"]
print(f"王力宏的考试分数为:{score}")

 字典嵌套

字典的Key和Value可以是任意数据类型(Key不可为字典),即字典可以嵌套

stu_score_dict={"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
print(f"学生的考试信息是:{stu_score_dict}")score=stu_score_dict["周杰伦"]["语文"]
print(f"周杰伦的语文分数:{score}")

字典的常用操作

新增元素

更新元素

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
#新增元素
my_dict["张信哲"]=66
print(f"字典新增元素之后,结果:{my_dict}")
#更新元素
my_dict["周杰伦"]=33
print(f"字典在更新元素之后,结果是:{my_dict}")

删除元素

清空字典

#删除元素
score=my_dict.pop("周杰伦")
print(f"字典中被移除了一个元素,结果:{my_dict},周杰伦的考试分数是:{score}")
#清空元素 clear
my_dict.clear()
print(f"字典被清空了,内容是:{my_dict}")

获取全部的Key

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
keys=my_dict.keys()
print(f"字典中全部的Key为:{keys}")
#遍历字典
#方式一:通过获取到全部的Key来完成遍历
for key in keys:print(f"字典的key是:{key}")print(f"字典的value是:{my_dict[key]}")#方式二:直接对字典进行for循环,每一次循环都是直接得到key
for key in my_dict:print(f"2字典的key是:{key}")print(f"2字典的value是:{my_dict[key]}")

统计字典内的元素数量

my_dict={"周杰伦":99,"林俊杰":88,"张学友":77}
num=len(my_dict)
print(f"字典中的元素数量有:{num}")

 总结

综合案例:

empl_inf = {"王力宏": {"部门": "科技部","工资": 3000,"级别": 1},"周杰伦": {"部门": "市场部","工资": 5000,"级别": 1},"林俊杰": {"部门": "市场部","工资": 7000,"级别": 3},"张学友": {"部门": "市场部","工资": 4000,"级别": 1},"刘德华": {"部门": "市场部","工资": 6000,"级别": 2}
}
print(f"全体员工信息如下:{empl_inf}")
# 遍历字典并更新符合条件的员工信息
for name in empl_inf:if empl_inf[name]["级别"]==1:employee_empl_inf=empl_inf[name]employee_empl_inf["级别"]+=1employee_empl_inf["工资"]+=1000empl_inf[name]=employee_empl_inf# 输出更新后的员工信息
print(f"全体员工更新后信息如下:{empl_inf}")

数据容器特点对比

数据容器的通用操作

容器的类型转换

容器通用排序功能

my_list=[3,1,2,5,4]
my_tuple=(3,1,2,5,4)
my_str="bdcefga"
my_set={3,1,2,5,4}
my_dict={"key3":1,"key":2,"key2":3,"key5":4,"key4":5}print(f"容器对象排序的结果是:{sorted(my_list)}")#从小到大排序
print(f"容器对象排序的结果是:{sorted(my_tuple)}")
print(f"容器对象排序的结果是:{sorted(my_str)}")
print(f"容器对象排序的结果是:{sorted(my_set)}")
print(f"容器对象排序的结果是:{sorted(my_dict)}")
#排序的结果是列表print(f"容器对象排序的结果是:{sorted(my_list,reverse=True)}")#从大到小排序
print(f"容器对象排序的结果是:{sorted(my_tuple,reverse=True)}")
print(f"容器对象排序的结果是:{sorted(my_str,reverse=True)}")
print(f"容器对象排序的结果是:{sorted(my_set,reverse=True)}")
print(f"容器对象排序的结果是:{sorted(my_dict,reverse=True)}")

总结

若有侵权,请联系作者

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

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

相关文章

springboot 将manage关闭。

这是SpringBoot自带的接口,会将所有的接口暴露在外面。所以我们上生产环境,需要将这个接口给关闭。 默认是 management.endpoints.web.exposure.include* 只需将配置文件改成下面,Springboot自带的接口就会关闭。 management.endpoints.…

【物联网开源平台】tingsboard二次开发

别看这篇了,这篇就当我的一个记录,我有空我再写过一篇,编译的时候出现了一个错误,然后我针对那一个错误执行了一个命令,出现了绿色的succes,我就以为整个tingsboard项目编译成功了,后面发现的时候&#xff…

记录微信小程序云开发的增删改查

目录 一、准备工作 1、创建集合添加数据 2、设置数据权限 3、小程序连接数据库 二、增删改查 1.查 1、查询单集合所有数据 2、条件查询 1、直接:相当于等于 2、调用指令 3、查询单条(根据id查询) 2.增 3.改 4.删 一、准备工作 1、创建集合添…

力扣---最长公共子序列---二维动态规划

思想: 定义g[i][j]:text1的前i位和text2的前j位的最长公共子序列长度。递推公式:如果text[i]text[j],那么只需要看g[i-1][j-1]即可,此时g[i][j]g[i-1][j-1]1。如果text[i]!text[j],那么g[i][j]max(g[i-1][j…

【研发管理】研发管理规范

研发管理规范 目的定义工作职责产品经理项目经理运维负责人研发负责人研发工程师 基本原则研发过程描述需求分析分析设计研发实现测试验收发布上线线上监控 目的 软件研发相关管理,有效控制技术风险,提高研发和运行质量 定义 包括需求分析、分析设计…

【C】盛最多水的容器(双指针)

盛最多水的容器 原题目链接:点击跳转 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和(i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说…

小学生古诗文大会往届真题测一测(来自主办方)和非常详细的解析

新学期开学一眨眼已经过了一个多月了,有家长朋友开始关心2024年上海市小学生古诗文大会什么时候开始?如何准备小学生古诗文大会?如何激发孩子学习古诗词的兴趣?如何提高小学古诗词和古诗文大会的学习成绩?... 最近&…

基于SpringBoot+Vue共享汽车管理系统(源码+部署说明+演示视频+源码介绍)

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

3.25C++

定义自己的命名空间&#xff0c;其中有string类型的变量&#xff0c;再定义两个函数&#xff0c;一个函数完成字符串的输入&#xff0c;一个函数完成求字符串长度&#xff0c;再定义一个全局函数完成对该字符串的反转 #include <iostream> #include <cstring> usi…

网络基础二——序列化与反序列化

1、应用层 我们程序员写的一个个解决我们实际问题&#xff0c;满足我们日常需求的网络程序&#xff0c;都是在应用层。 2、再谈“协议” 协议是一种 " 约定 "。 socket api 的接口 , 在读写数据时 , 都是按 " 字符串 " 的方式来发送接收的 . 如果我们…

c++模拟银行家算法

在复习408时,使用代码模拟能够加深对知识点的理解 1.银行家算法介绍 银行家算法是迪杰斯特拉发明的死锁避免的算法。找到合理的资源分配序列保证各进程的正常推进是银行家算法的核心。 2.自定义类以及成员变量和成员函数说明 进程类 //进程类 class Process; //资源最大需求…

FPGA之状态机学习

作为一名逻辑工程师&#xff0c;掌握和应用状态机设计是必不可少的。能够灵活的应用状态机是对逻辑工程师最基本的要求&#xff0c;状态机设计的好坏能够直接影响到设计系统的稳定性&#xff0c;所以学会状态机是非常的重要。 1.状态机的概念 状态机通过不同的状态迁移来完成特…

【C语言】Infiniband驱动__mlx4_init_one函数

一、注释 Linux内核驱动程序中的部分&#xff0c;属于Mellanox网卡驱动mlx4的初始化过程。 // Mellanox 以太网驱动主程序代码 static int __mlx4_init_one(struct pci_dev *pdev, int pci_dev_data,struct mlx4_priv *priv) {int err; // 错误码变量int nvfs[MLX4_MAX_PORTS…

【SSH配置公钥私钥免密登录】

SSH配置公钥私钥免密登录 SSH的安全机制一、修改远程主机ssh设置二、在windows客户端生成公钥私钥文件三、将客户端公钥追加到远程主机 .ssh/authorized_keys中参考链接 SSH的安全机制 SSH之所以能够保证安全&#xff0c;原因在于它采用了非对称加密技术(RSA)加密了所有传输的…

机载激光雷达标定板提高测量精度

机载激光雷达系统标定板&#xff08;LiDAR&#xff09;是一种高精度的遥感技术&#xff0c;它通过发射激光脉冲并接收反射回来的光波来测量目标物体的距离。这种技术在测量地形、建筑物、植被等方面有着广泛的应用。为了确保机载激光雷达系统的数据准确性和可靠性&#xff0c;需…

An Experimental Study of State-of-the-Art Entity Alignment Approaches论文阅读

最先进的实体对齐方法的实验研究综述 Title: An Experimental Study of State-of-the-Art Entity Alignment Approaches 日期: 2022 发表单位: IEEE github: https://github.com/DexterZeng/EAE 原文地址: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber9174835 概括…

flutter 弹窗之系列二

自定义弹窗&#xff08;含底部抽屉&#xff09;Dialog class MyHomePage extends StatefulWidget {const MyHomePage({super.key, required this.title});final String title;overrideState<MyHomePage> createState() > _MyHomePageState(); }class _MyHomePageState…

云手机:实现便携与安全的双赢

随着5G时代的到来&#xff0c;云手机在各大游戏、直播和新媒体营销中扮演越来越重要的角色。它不仅节约了成本&#xff0c;提高了效率&#xff0c;而且在边缘计算和云技术逐渐成熟的背景下&#xff0c;展现出了更大的发展机遇。 云手机的便携性如何&#xff1f; 云手机的便携性…

企业微信应用结合Cpolar内网穿透实现固定域名验证回调本地接口服务

文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段&#xff0c;应用服务通常是部署在开发环境&#xff0c;在有数据回调的开发场…

k8s入门到实战(四)—— k8s核心概念以及基本操作命令详细介绍

k8s 核心概念及操作命令 namespace&#xff08;命名空间&#xff0c;简称 ns&#xff09; k8s 资源创建的两种方式&#xff1a;使用命令行创建、使用 yaml 文件创建 什么是 ns 在 k8s 中&#xff0c;ns 是一种用于对集群资源进行逻辑分组和隔离的机制。它允许将 k8s 集群划…