当前位置: 首页 > news >正文

Python数据容器(字典)

字典

    • 1.字典的定义
    • 2.字典数据的获取
    • 3.字典的嵌套
    • 4.嵌套字典的内容获取
    • 5.字典的常用操作
    • 6.常用操作总结
    • 7.遍历字典
    • 8.练习

1.字典的定义

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

# 定义字典字面量
{key:value,key:value,...,key:value}
# 定义字面量
my_dict = {key:value,key:value,...,key:value}
# 定义空字典
my_dict = {}
my_dict = dict{}
# 学生成绩
stu_score = {"王力宏":99,"周杰伦":88,"林俊杰":77}
print(stu_score)  # 结果 {'王力宏': 99, '周杰伦': 88, '林俊杰': 77}

2.字典数据的获取

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

# 学生成绩
stu_score = {"王力宏":99,"周杰伦":88,"林俊杰":77}
print(stu_score["王力宏"]) # 结果 99
print(stu_score["周杰伦"]) # 结果 88
print(stu_score["林俊杰"]) # 结果 77

3.字典的嵌套

姓名语文数学英语
王力宏776633
周杰伦888655
林俊杰999666
# 代码
stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}}
# 优化代码
stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}

4.嵌套字典的内容获取

stu_score = {"王力宏":{"语文":77,"数学":66,"英语":33},"周杰伦":{"语文":88,"数学":86,"英语":55},"林俊杰":{"语文":99,"数学":96,"英语":66}
}
print(stu_score["王力宏"])  # 结果 {'语文': 77, '数学': 66, '英语': 33}
print(stu_score["王力宏"]["语文"])  # 结果 77
print(stu_score["周杰伦"]["数学"])  # 结果 86

5.字典的常用操作

  • 新增元素
    • 语法:字典[Key] = Value
    • 结果:字典被修改,新增了元素
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
# 新增,张学友的考试成绩
stu_score["张学友"]=66
print(stu_score)  # 结果 {'王力宏': 77, '周杰伦': 88, '林俊杰': 99, '张学友': 66}
  • 更新元素
    • 语法:字典[Key] = Value
    • 结果:字典被修改,元素被更新
    • 注意:字典Key不可以重复,所以是对已存在Key执行的操作,更改的是value的值
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
# 更新,王力宏的考试成绩
stu_score["王力宏"]=100
print(stu_score) # 结果 {'王力宏': 100, '周杰伦': 88, '林俊杰': 99}
  • 删除元素
    • 语法:字典.pop(Key)
    • 结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
value= stu_score.pop("王力宏")
print(value)  # 结果 77
print(stu_score) # 结果 {'周杰伦': 88, '林俊杰': 99}
  • 清空字典
    • 语法:字典.clear()
    • 结果:字典被修改,元素被清空
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
stu_score.clear()
print(stu_score) # 结果 {}
  • 获取全部的Key
    • 语法:字典.keys()
    • 结果:得到字典中全部的Key
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
keys = stu_score.keys()
print(keys) # 结果 dict_keys(['王力宏', '周杰伦', '林俊杰'])
  • 计算字典内的全部元素(键值对)数量
    • 语法:len(字典)
    • 结果:得到一个整数,表示字典元素(键值对)数量
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
print(len(stu_score)) #  结果 3

6.常用操作总结

编号操作说明
1字典[Key]获取指定Key对应的Value值
2字典[Key]=Value添加或更新键值对
3字典.pop(Key)取出Key对应的Value并在字典内删除此Key的键值对
4字典.clear()清空字典
5字典.keys()获取字典的全部Key,可用于for循环遍历字典
6len(字典)计算字典内元素数量

7.遍历字典

注意:字典不支持下标索引,不可以使用while循环

  • for循环遍历
stu_score = {"王力宏":77,"周杰伦":88,"林俊杰":99
}
keys = stu_score.keys()
for key in keys:print(f"学生{key}的分数是:{stu_score[key]}")
## 结果
学生王力宏的分数是:77
学生周杰伦的分数是:88
学生林俊杰的分数是:99

8.字典的特点

  • 可以容纳多个数据
  • 可以容纳多个不同类型的数据
  • 每一份数据都是KeyValue键值对
  • 可以通过Key获取到Value,Key不可以重复
  • 不支持下标索引
  • 可以修改(增加或删除更新元素)
  • 支持for循环

8.练习

在这里插入图片描述

# 定义字典
information = {"王力宏":{"部门":"科技部","工资":3000,"级别":1},"周杰伦":{"部门":"市场部","工资":5000,"级别":2},"林俊杰":{"部门":"市场部","工资":7000,"级别":3},"张学友":{"部门":"科技部","工资":4000,"级别":1},"刘德华":{"部门":"市场部","工资":6000,"级别":2}
}
print(f"全体员工当前信息如下{information}")
keys = information.keys()
# for循环遍历
for key in keys:if information[key]["级别"] == 1:# 升职加薪操作information[key]["级别"] += 1information[key]["工资"] += 1000
print(f"升职加薪操作之后,信息如下{information}")
## 输出
全体员工当前信息如下{'王力宏': {'部门': '科技部', '工资': 3000, '级别': 1}, '周杰伦': {'部门': '市场部', '工资': 5000, '级别': 2}, '林俊杰': {'部门': '市场部', '工资': 7000, '级别': 3}, '张学友': {'部门': '科技部', '工资': 4000, '级别': 1}, '刘德华': {'部门': '市场部', '工资': 6000, '级别': 2}}
升职加薪操作之后,信息如下{'王力宏': {'部门': '科技部', '工资': 4000, '级别': 2}, '周杰伦': {'部门': '市场部', '工资': 5000, '级别': 2}, '林俊杰': {'部门': '市场部', '工资': 7000, '级别': 3}, '张学友': {'部门': '科技部', '工资': 5000, '级别': 2}, '刘德华': {'部门': '市场部', '工资': 6000, '级别': 2}}
http://www.lryc.cn/news/231279.html

相关文章:

  • 餐饮展示小程序的作用是什么
  • 33、Flink 的Table API 和 SQL 中的时区
  • Origin:科研绘图与学术图表绘制从入门到精通
  • 腾讯云标准型SA4服务器AMD处理器性能测评
  • LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)
  • element-ui中Form表单使用自定义验证规则
  • android源码添加adb host支持
  • 学习c#的第二天
  • CodeWhisperer 使用经验分享
  • 数据结构与算法之美学习笔记:18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?
  • 解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol
  • 杭电oj 2035 人见人爱A^B C语言
  • [量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理
  • Mysql中的索引与事务和B树的知识补充
  • 2024上海国际智能驾驶技术展览会(自动驾驶展)
  • 嵌入式Linux开发,NFS文件系统挂载
  • 什么是3D建模中的“高模”和“低模”?
  • python数据结构与算法-04_队列
  • 从理论到实践:深度解读BIO、NIO、AIO的优缺点及使用场景
  • Mysql Innodb Cluster集群搭建 - docker
  • 如何在 macOS 中删除 Time Machine 本地快照
  • mysql的sql_mode参数
  • 模拟业务流程+构造各种测试数据,一文带你测试效率提升80%
  • 【linux】 Shell函数返回值
  • 面试:容器技术
  • 在Linux中nacos集群模式部署
  • 7天入门python系列之爬取热门小说项目实战,互联网的东西怎么算白嫖呢
  • 产品经理墨刀学习----注册页面
  • 算法通关村——归并排序
  • SDL2 播放音频数据(PCM)