目录
一.思考
二.字典定义
注意
三.字典数据的获取
注意
字典的嵌套
四.字典常用操作
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不可为字典)
那么,就表明,字典是可以嵌套的
需求如下:记录学生各科的考试信息
姓名 | 语文 | 数学 | 英语 |
张三 | 87 | 56 | 87 |
李四 | 67 | 86 | 98 |
王五 | 77 | 68 | 60 |
代码如下
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]}")
结果是
五.字典总结
- 可以容纳多个数据
- 可以容纳不同类型的数据
- 每一份数据是KeyValue键值对
- 可以通过Key获取到value,Key不可重复(重复会覆盖)
- 不支持下标索引
- 可以修改(增加或删除更新元素等)
- 支持for循环,不支持while循环
六.字典实例
有如下员工信息,请使用字典完成数据的记录。
并通过for循环,对所有级别为1级的员工,级别上升1级,薪水增加1000元
姓名 | 部门 | 工资 | 级别 |
张三 | 科技部 | 3000 | 1 |
李四 | 市场部 | 5000 | 2 |
王五 | 市场部 | 7000 | 3 |
赵四 | 科技部 | 4000 | 1 |
赵六 | 市场部 | 6000 | 2 |
代码
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]["级别"]+=1
info_dict[name]["工资"]+=1000
print(f"改变之后的信息为:{info_dict}")
结果为