一、字典(映射)的定义
生活中的字典:
【字】:【含义】
可以按【字】找出对应的【含义】
Python中的字典:
key : value
可以按照[key]找出对应的[value]
1、Python字典使用场景:
通过使用字典,实现用key取出value的操作
2、字典的定义: 字典中的元素为键值对
同样使用{},不过存储的元素是一个个的:键值对 如下语法:
字典dict中的key不允许重复
3、字典数据的获取
字典和集合一样,不可以使用下标索引
但是字典可以通过key值来取得对应的value
4、字典的嵌套
字典的key和value可以是任意数据类型(key不可以为字典)
表明字典是可以嵌套的
需求如下:记录学生各科的考试信息 学生姓名作为key 各科成绩作为value
"""
演示数据容器字典的定义
"""
# 定义字典 key:value --为一个元素
my_dict1 = {"moew":100,"piggy":0,"doggy":22}
# 定义空字典
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)}")
# 定义重复key的字典 key不允许重复
my_dict4 = {"piggy":100,"piggy":0,"doggy":22}
print(f"重复key的字典内容是:{my_dict4}")
# 从字典中基于key获取value
my_dict1 = {"moew":100,"piggy":0,"doggy":22}
score = my_dict1["moew"]
print(f"moew中对应的值是:{score}")
score = my_dict1["piggy"]
print(f"piggy中对应的值是:{score}")
# 定义嵌套字典
info_dict = {
"moew":{
'语文':88,
'数学':90,
'英语':100
},"piggy":{
'语文':78,
'数学':80,
'英语':90
},"doggy":{
'语文':68,
'数学':70,
'英语':60
}
}
print(info_dict)
# 从嵌套字典中获取数据 看一下 doggy 数学
score = info_dict["doggy"]['数学']
print(f"doggy的数学:{score}")
二、字典的常用操作
1、新增元素
语法:字典[key]=Value 字典被修改 新增了元素
2、更新元素
语法:对于已存在的key 字典[key]=Value 字典被修改 新增了元素
由于字典key不可以重复 所以对已存在的key执行该操作就是更新value
3、删除元素
语法:字典.pop() 获得指定key的value,同时字典被修改,指定key的value被删除
3、清空元素
语法:字典.clear() 字典被修改,元素被清空
4、获取全部的key
语法:字典.keys()
字典的常用操作总结:
字典的特点总结:
-
可以容纳多个数据
-
可以容纳不同类型的数据
-
每一分数据都是key:value键值对
-
可以通过key取到value,key不可以重复(重复会覆盖)
-
不支持下标索引
-
可以修改(增加或删除更新元素等)
-
支持for循环,不支持while循环
案例练习:
# 有如下员工 使用字典完成数据记录 使用for循环对于级别为1的员工级别上升一级 薪水增加1000元
info_dict = {'mew':{'部门':'科技部','工资':3000,'级别':1},
'dog':{'部门':'市场部','工资':5000,'级别':2},
'pig': {'部门': '市场部', '工资': 7000, '级别': 3},
'rat': {'部门': '科技部', '工资': 4000, '级别': 1},
'panda': {'部门': '市场部', '工资': 6000, '级别': 2},
}
print(f"全体员工当前信息如下:{info_dict}")
for inf in info_dict:
if info_dict[inf]['级别'] == 1:
info_dict[inf]['级别'] = 2
info_dict[inf]['工资'] += 1000
# if tmp_dict[inf]['级别'] == '1':
print(f"全体员工级别为1的员工完成升级加薪后信息如下:{info_dict}")