python中的字典详解
创始人
2024-04-24 20:18:05
0

目录

一.思考

二.字典定义

 注意

三.字典数据的获取

 注意

 字典的嵌套

 四.字典常用操作

1.新增、更新元素

2.删除元素

3.清空字典

4.获取全部Key

5.利用Key遍历字典

 五.字典总结

六.字典实例


 

一.思考

为什么需要字典?

 生活中的字典我们可以根据【字】来找到对应的【含义】

python中的字典也是同理,不过叫法不同,在python中就是[Key]去找对应的[Value]

 比如说,我这里有一份名单,记录的是姓名和成绩:
 

姓名        

成绩
张三        76
李四87
王五90

现在需要将其通过Python录入至程序中,并可以通过学生姓名检索学生的成绩。

这个时候,用字典最适合

{"张三":76,"李四":87,"王五":90
}

这样就可以通过Key (姓名),取到对应的Value(成绩)

二.字典定义

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

#定义字典字面量
{key:value,key:value,key:value,.....,key:value}
my_dict = {key:value,key:value,key:value,.....,key:value}
#定义空字典两种方法
my_dict = {}
my_dict = dict()
#定义字典字面量
{"张三":76,"李四":87,"王五":90}
my_dict = {"张三":76,"李四":87,"王五":90}
#定义空字典两种方法
my_dict2 = {}
my_dict3 = dict()
print(f"字典1的内容是{my_dict},类型为{type(my_dict)}")
print(f"字典1的内容是{my_dict2},类型为{type(my_dict2)}")
print(f"字典1的内容是{my_dict3},类型为{type(my_dict3)}")

运行结果是

 注意

如果字典中的关键字重复,那么只会输出最后一次结果,如图

三.字典数据的获取

字典同集合一样,不可以使用下标索引
但是字典可以通过Key值来取得对应的Value

 注意

只能由Key找到对应的Value

 字典的嵌套

字典的Key和value可以是任意数据类型( Key不可为字典)
那么,就表明,字典是可以嵌套的

需求如下:记录学生各科的考试信息
 

姓名语文数学英语
张三875687
李四678698
王五776860

代码如下

my_dict = {"张三":{"语文":87,"数学":56,"英语":87},"李四":{"语文": 67,"数学": 86,"英语": 98},"王五":{"语文": 77,"数学": 68,"英语": 60}}
print(f'王五的信息是:{my_dict["王五"]}')
print(f"所有信息是:{my_dict}")
print(my_dict["张三"]["语文"])
print(my_dict["张三"]["数学"])
print(my_dict["张三"]["英语"])
Lisi_yingyu = my_dict["李四"]["英语"]
print(f"李四的英语是:{Lisi_yingyu}")

结果是

 四.字典常用操作

  • 新增元素
  • 更新元素
  • 删除元素
  • 清空字典
  • 获取全部Key
  • 利用Key遍历字典

1.新增、更新元素

语法:字典[Key]= Value,结果:字典被修改,元素被更新

my_dict = {"张三":76,"李四":87,"王五":90
}
my_dict["赵四"]=75
print(f"添加赵四之后为:{my_dict}")
my_dict["张三"]=98
print(f"更新张三之后为:{my_dict}")

结果是

2.删除元素

语法:字典.pop(Key),结果:获得指定Key的value,同时字典被修改,指定Key的数据被删除

 

3.清空字典

语法:字典.clear(),结果:字典被修改,元素被清空

4.获取全部Key

语法:字典.keys()
结果:得到字典中的全部key 

5.利用Key遍历字典

my_dict = {"张三":76,"李四":87,"王五":90
}
print(f"字典中的所有key为:{my_dict.keys()}")
for name in my_dict.keys():print(f"字典的key是:{name},其value是:{my_dict[name]}")

 结果是

 

 五.字典总结

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据
  3. 每一份数据是KeyValue键值对
  4. 可以通过Key获取到value,Key不可重复(重复会覆盖)
  5. 不支持下标索引
  6. 可以修改(增加或删除更新元素等)
  7. 支持for循环,不支持while循环

六.字典实例

有如下员工信息,请使用字典完成数据的记录。
并通过for循环,对所有级别为1级的员工,级别上升1级,薪水增加1000元

姓名部门工资级别
张三科技部30001
李四市场部50002
王五市场部70003
赵四科技部40001
赵六市场部60002

代码

info_dict = {"张三":{"部门":"科技部","工资":3000,"级别":1},"李四":{"部门":"市场部","工资":5000,"级别":2},"王五": {"部门": "市场部","工资": 7000,"级别": 3},"赵四": {"部门": "科技部","工资": 4000,"级别": 1},"赵六": {"部门": "市场部","工资": 6000,"级别": 2}
}
print(f"改变之前的信息为:{info_dict}")
for name in info_dict.keys():if info_dict[name]["级别"]==1:info_dict[name]["级别"]+=1info_dict[name]["工资"]+=1000
print(f"改变之后的信息为:{info_dict}")

结果为

 

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...