数据容器-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["级别"]+=1
        employee_empl_inf["工资"]+=1000
        empl_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)}")

总结

若有侵权,请联系作者

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HarborCDN技术分析

一、介绍 简要介绍 ​​Harbor​​ 是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker C…

直击GDC 2024 (二):网易智企首次揭秘篮球游戏AI智能体!

近几日,世界级游戏开发者盛会 GDC(Game Developers Conference)2024 正在美国举行。全球游戏行业的精英都汇聚于旧金山,共同探索前沿的游戏开发技术、洞察行业最新趋势,并互相交流对未来发展的深刻见解。 (…

校园跑腿小程序源码系统多校园版 跑腿达人入驻接单 带完整的安装代码包以及系统部署教程

在数字化时代的浪潮中,校园生活的便捷性和高效性成为了广大师生的共同追求。为了满足这一需求,罗峰给大家分享一款适用于多校园的跑腿小程序源码系统——校园跑腿小程序源码系统多校园版。该系统不仅提供了完整的安装代码包,还附带了详尽的系…

你以为的富贵包其实是脂肪瘤 整形外科医生为你科普脂肪瘤

脖子后面长的包都是富贵包吗?西安国际医学中心医院整形外科门诊主任冯登超曾接诊过一位七旬老人,他的颈部后方有一个直径约13厘米的巨大肿块,核磁共振检查提示右侧劲后皮下软组织内巨大囊性肿块。“他们以为是富贵包,实际上是脂肪…

C语言:给结构体取别名的4种方法

0 前言 在进行嵌入式开发的过程中,我们经常会见到typedef这个关键字,这个关键字的作用是给现有的类型取别名,在实际使用过程中往往是将一个复杂的类型名取一个简单的名字,便于我们的使用。就像我们给很熟的人取外号一样&#xff…

【大模型基础】什么是KV Cache?

哪里存在KV Cache? KV cache发生在多个token生成的步骤中,并且只发生在decoder中(例如,decoder-only模型,如 GPT,或在encoder-decoder模型,如T5的decoder部分),BERT这样…

详解Python面向对象编程(一)

类和对象 面向过程——怎么做? (1)把完成某一需求的所有步骤、从头到尾,逐步实现 (2)根据开发需求,将某些功能独立的代码块封装成一个又一个的函数 (3)最后完成的代码&a…

3.3 数据定义 数据库与系统概论

目录 3.3.1 模式的定义与删除 1. 定义模式 2. 删除模式 CASCADE(级联) RESTRICT(限制) 3.3.2 基本表的定义、删除与修改 表的定义 2.数据类型 3. 模式与表 4. 修改基本表 5. 删除基本表 3.3.3 索引的建立与删除 1. …

开发者的瑞士军刀:DevToys

DevToys: 一站式开发者工具箱,打造高效创意编程体验,让代码生活更加得心应手!—— 精选真开源,释放新价值。 概览 不知道大家是否在windows系统中使用过PowerToys?这是微软研发的一项免费实用的系统工具套…

2024-简单点-pandas

pandas pandas to numpy 尽量不用.values提取数据 numexpr 和 bottleneck加速 布尔操作 describe 自定义describe .pipe df.apply 行或者列级别函数级别应用

pod name 传到容器内部环境变量

背景: 部署skywalking需要管理k8s的pod,需要一个参数-Dskywalking.agent.instance_name 要将podname传递给这个参数 -Dskywalking.agent.instance_name{PODNAME} 通过configmap和secret都无法传递。 在容器里通过这两个命令都可以获取到podname 但在env里这样设置或…

模仿羊羊~消消乐

慎玩!随机生成、不保证能消完哦! 游戏试玩: 链接: https://pan.baidu.com/s/1IwtOd__8Ca0bSouMP8kEzw 提取码: 6yhd

docker配置镜像加速后容器和镜像消失

一、问题描述 根据阿里云给docker配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://gt6j98xi.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl rest…

力扣面试150 Pow(x, n) 快速幂 负指数

Problem: 50. Pow(x, n) 解题方法 &#x1f468;‍&#x1f3eb; 参考题解 复杂度 时间复杂度: O ( l o g 2 n ) O(log_{2}n) O(log2​n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public double myPow(double x, int n){if (x 0.0f)return 0.0d;long b…

最长上升子序列问题

题目&#xff1a;1014. 登山 思路 First 这题也可以看作最长上升子序列&#xff0c;只不过这个序列有三种情况。 先上升&#xff0c;后下降先上升&#xff0c;不下降不上升&#xff0c;直接下降 其实这三种情况我们可以归纳为一种情况&#xff1a;先上升后下降。先上升不下…

C++之多态(二)

一.抽象类 纯虚函数&#xff1a;在虚函数后面加上0就是纯虚函数 作用&#xff1a;纯虚函数规范了派生类必须重写&#xff0c;另外纯虚函数更体现出了接口继承 抽象类定义&#xff1a; 包含纯虚函数的类叫做抽象类&#xff08;也叫接口类&#xff09;&#xff0c;抽象类不能…

Scikit-Learn K近邻分类

Scikit-Learn K近邻分类 1、K近邻分类1.1、K近邻分类及原理1.2、超参数K1.3、K近邻分类的优缺点2、Scikit-Learn K近邻分类2.1、Scikit-Learn K近邻分类API1、K近邻分类 K近邻是一种常用的分类算法。K近邻在机器学习知识结构中的位置如下: 1.1、K近邻分类及原理 K近邻(K-Near…

GoogLeNet论文学习笔记

题目&#xff1a;Going deeper with convolutions 下载地址&#xff1a;GoogLeNet论文 代码&#xff1a;GoogLeNet代码 GoogLeNet在2014年的ISCRC分类比赛中第一名。 创新点 引入Inception结构&#xff08;融合不同尺度的特征信息&#xff09;&#xff1b; 使用1*1的卷积核…

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略

AI&#xff1a;Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略 目录 Nvidia官网人工智能大模型工具合集的简介 1、网站主要功能包括: Nvidia官网人工智能大模型工具合集的使用方法 1、SDXL-Turbo的使用 2、GEMMA-7B的…

全志A33编译踩坑!

领导给了个新sdk。然后开编。 编译的标准流程是这样 cd lichee ./build.sh config 这还得了&#xff0c;每次都选很烦&#xff08;虽然只需要选一次&#xff09;&#xff0c;于是新写法是这样 ./build.sh -p sun8iw5p1_android -k linux-3.4 -b evb 果断提示 ERROR: inv…