python数据容器(四)字典

思维导图

代码

1. 数据容器:dict(字典、映射)

(1)字典的定义

# 字典的定义
# 定义字典
my_dict1 = {"王力鸿": 99, "周杰轮": 88, "林俊节": 77}

# 定义空字典
my_dict2 = {}
my_dict3 = dict()

print(my_dict1) # {'王力鸿': 99, '周杰轮': 88, '林俊节': 77}
print(my_dict2) #{}
print(my_dict3) #{}

# 定义重复key的字典
my_dict1 = {"王力鸿": 99, "王力鸿": 88, "林俊节": 77}
print(my_dict1) # {'王力鸿': 88, '林俊节': 77}

(2)字典数据的获取

# 定义字典
my_dict1 = {"王力鸿": 99, "周杰轮": 88, "林俊节": 77}

print(my_dict1["周杰轮"]) # 输出:88
print(my_dict1["王力鸿"]) # 输出:99
print(my_dict1["林俊节"]) # 输出:77

(3) 字典的嵌套

实现:

姓名语文数学英语

王力鸿

776633

周杰轮

888655

林俊节

999666
# 定义嵌套字典
my_dict1 = {
    "王力鸿": {
        "语文":77,
        "数学":66,
        "英语":33,
    } ,
    "周杰轮": {
        "语文":88,
        "数学":86,
        "英语":55,
    } ,
    "林俊节": {
        "语文":99,
        "数学":96,
        "英语":66,
    } 
}
print(my_dict1) # {'王力鸿': {'语文': 77, '数学': 66, '英语': 33}, '周杰轮': {'语文': 88, '数学': 86, '英语': 55}, '林俊节': {'语文': 99, '数学': 96, '英语': 66}}
print(my_dict1["林俊节"]) # {'语文': 99, '数学': 96, '英语': 66}
print(my_dict1["林俊节"]["英语"]) # 66

(4)常用操作 

① 新增元素
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 新增张学油的分数
stu_score["张学油"] = 90
print(stu_score) # {'王力鸿': 77, '周杰轮': 88, '林俊节': 99, '张学油': 90}
② 更新元素
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 更新王力鸿的分数
stu_score["王力鸿"] = 90
print(stu_score) # {'王力鸿': 90, '周杰轮': 88, '林俊节': 99}
③删除元素
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 删除王力鸿的分数
stu_score.pop("王力鸿")
print(stu_score) # {'周杰轮': 88, '林俊节': 99}
④清空字典
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 清空字典
stu_score.clear()
print(stu_score) # {}
⑤获取全部key
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 获取全部key
print(stu_score.keys()) # dict_keys(['王力鸿', '周杰轮', '林俊节'])
⑥遍历字典
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 遍历字典
# 方式1:通过获取到全部的key来完成遍历
keys = stu_score.keys()
for key in keys:
    print(key, stu_score[key]) 
    # 王力鸿 77
    # 周杰轮 88
    # 林俊节 99
# 方式2:直接对字典进行for循环,每一次循环都是直接得到key
for key in stu_score:
    print(key, stu_score[key])
    # 王力鸿 77
    # 周杰轮 88
    # 林俊节 99
⑦统计字典内的元素数量
stu_score = {
    "王力鸿": 77,
    "周杰轮": 88,
    "林俊节": 99
}

# 统计字典内的元素数量
num = len(stu_score)
print("字典内元素数量为:", num) # 字典内元素数量为: 3

· 练习:升职加薪 

有如下员工信息,请使用字典完成数据的记录。

并通过for循环,对所有级别为1级的员工,级别上升1级,薪水增加1000元

姓名部门工资级别
王力鸿科技部30001
周杰轮市场部50002
林俊节市场部70003
张学油科技部40001
刘德滑市场部60002
my_dict = {
    "姓名":{
        "王力鸿":{
            "部门": "科技部",
            "工资": 3000,
            "级别": 1
        },
        "周杰轮":{
            "部门": "市场部",
            "工资": 5000,
            "级别": 2
        },
        "林俊节":{
            "部门": "市场部",
            "工资": 7000,
            "级别": 3
        },
        "张学油":{
            "部门": "科技部",
            "工资": 4000,
            "级别": 1
        },
        "刘德滑":{
            "部门": "市场部",
            "工资": 6000,
            "级别": 2
        }
    }
}
print(f"修改前的字典:{my_dict}")

# 通过for循环,对所有级别为1级的员工,级别上升1级,薪水增加1000元
for name in my_dict["姓名"]:
    if my_dict["姓名"][name]["级别"] == 1:
        my_dict["姓名"][name]["级别"] += 1
        my_dict["姓名"][name]["工资"] += 1000

print(f"修改后的字典:{my_dict}")

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值