Python零基础入门篇 - 15 - Python中的字典
前言:
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的养了一只哈士奇)
📑 个人主页:渴望力量的哈士奇主页
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,还请不吝👍关注、点赞、收藏三连支持👍一下博主哦
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
📕系列专栏::
👍 Python全栈系列 - [更新中] ➡️➡️➡️ 【 本文在该系列】
👋 网安之路系列
🍋 网安之路踩坑篇
🍋 网安知识扫盲篇
🍋 Vulhub 漏洞复现篇
🍋 Shell脚本编程篇
🍋 Web攻防篇 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
🍋 渗透工具使用集锦 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
⭐️ 点点点工程师系列
🍹 测试神器 - Charles 篇
🍹 测试神器 - Fiddler 篇
🍹 测试神器 - Jmeter 篇
🍹 自动化 - RobotFrameWork 系列
🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
🤗 2019年之前学习Python留下的乱七八糟系列
🎉🎉欢迎持续关注🎉🎉
文章目录
什么是字典?
- 字典是由多个键 (key) 及其对应的值 (value) 所组成的一种数据类型
- 字典在 Python 里面是非常重要的数据类型,而且很常用
- 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型
- 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一对键值之间用逗号分开
字典的结构与创建方法
- 在 Python 中,dict 代表着元组这一类型,也可以用它定义一个元祖
- 在 Python 中,通过
{}
将一个个 key 与 value 存入字典中, 如person = {'name':'neo', 'age':'18'}
字典通常用于描述对象的各种属性,例如一个人,有姓名、生日、年龄等各种属性,可以使用字典描述如下:
man = {'name': 'neo', 'birthday': '2000-01-01', 'age': '18'}print(man['name'])# >>> neoprint(man['birthday'])# >>> 2000-01-01print(man['age'])# >>> 18
- 在第 1 行,创建了一个字典用于描述一个人的属性
- 在第 2 行,使用字符串 'name’作为键(索引)访问字典中对应的值
- 在第 4 行,使用字符串 ‘birthday’ 作为键(索引)访问字典中对应的值
- 在第 6 行,使用字符串 ‘age’ 作为键(索引)访问字典中对应的值
字典支持的数据类型
- key 支持 字符串、数字、元组类型,但不支持列表类型
- 通常是字符串或数字
- 如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作键
- 但如果元组直接或间接地包含了可变对象,那么它就不能用作键
- value 支持所以 Python 的数据类型
person = {'name': 'neo', 'birthday': '2000-01-01', 'age': 18, 'height': 1.75}print(type(person['name'])) # >>> print(type(person['age'])) # >>> print(type(person['height']))# >>>
特殊情况:声明一个空字典
# 空字典dict_test = {}print(dict_test,type(dict_test))dict_test = dict()print(dict_test,type(dict_test))# 输出结果{} <class 'dict'>{} <class 'dict'>
在列表与元组中如何定义字典
dict_list = [{'name', 'lily'}, {'age', '17'}]dict_tuple = ({'name', 'jack'}, {'age', '18'})# 这里需要注意的是,元组一旦创建,就不可改变。
需要特别注意的是 Python3.7之前的版本字典是无序的,之后版本变为有序。
同时,字典最重要的一个特性,字典中的每一个key一定是唯一的。
字典常见操作
读取字典
>>> x = {'a':'A', 'b':'B'}>>> x['a']'A'>>> x['b']'B'
- 在第 1 行,创建一个具有 2 个键值对的字典;
- 在第 2 行,读取键 ‘a’ 对应的值;
- 在第 3 行,结果显示为 ‘A’;
- 在第 4 行,读取键 ‘b’ 对应的值;
- 在第 5 行,结果显示为 ‘B’。
修改字典
>>> x = {'a':'A', 'b':'B'}>>> x['a'] = 'AA'>>> x['b'] = 'BB'>>> x{'a':'AA', 'b':'BB'}
- 在第 1 行,创建一个具有 2 个键值对的字典;
- 在第 2 行,修改键 ‘a’ 对应的值为 ‘AA’;
- 在第 3 行,修改键 ‘b’ 对应的值为 ‘BB’;
- 在第 4 行,显示修改后的字典。
在字典中增加键值对
>>> x = {'a':'A', 'b':'B'}>>> x['c'] = 'C'>>> x{'a':'A', 'b':'B', 'c':'C'}
- 在第 1 行,创建一个具有 2 个键值对的字典;
- 在第 2 行,在字典中增加一个键值对:键为 ‘c’,值为 ‘C’;
- 在第 3 行,显示新增后的字典;
- 在第 4 行,新增后的自动包含 3 个键值对。
在字典中删除键值对
>>> x = {'a':'A', 'b':'B', 'c': 'C'}>>> del x['b']>>> x{'a':'A', 'c':'C'}
- 在第 1 行,创建一个具有 3 个键值对的字典;
- 在第 2 行,使用 del 语句从字典 x 中删除键 ‘b’ 对应的键值对;
- 在第 3 行,显示删除后的字典;
- 在第 4 行,删除一个键值对后,字典仅包含 2 个键值对。
查询字典
通过关键字 in 检查字典中是否包含指定元素,示例如下:
>>> x = {'a':'A', 'b':'B'}>>> 'a' in xTrue>>> 'c' in xFalse
- 在第 1 行,创建一个具有 2 个键值对的字典;
- 在第 2 行,使用关键字
in
检测键 ‘a’ 是否在字典 x 中; - 在第 3 行,结果为真,表示键 ‘a’ 在字典 x 中;
- 在第 4 行,使用关键字
in
检测键 ‘c’ 是否在字典 x 中; - 在第 5 行,结果为假,表示键 'c’不在字典 x 中。
关于字典的编程小练习
定义两个字典dict_1和dict_2,将以下三名学生的成绩放入字典中,其中dict_1以学生的姓名作为key,各科成绩作为value;dict_2以学科作为key,学生成绩作为value
姓名 | 英语 | 语文 | 数学 |
---|---|---|---|
huahua | 95 | 98 | 99 |
dandan | 98 | 99 | 100 |
xingxing | 100 | 97 | 98 |
# 以学生的姓名作为key,各科成绩作为valuedict_1 = {'huahua': [95, 98, 99], 'dandan': [98, 99, 100], 'xingxing': [100, 97, 98]}print('huahua的各科成绩分别是:' + str(dict_1.get('huahua')))# dict_2以学科作为key,学生成绩作为valuedict_2 = {'英语': [95, 98, 100], '语文': [98, 99, 97], "数学": [99, 100, 98]}print('三名同学的英语成绩分别是:' + str(dict_2.get('英语')))