zl程序教程

您现在的位置是:首页 >  后端

当前栏目

〖Python全栈白宝书-免费版⑮〗- Python中的字典

Python 字典 全栈 免费版 白宝书
2023-09-14 09:14:26 时间
  • 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
  • 荣誉:2022年度博客之星Top4博客专家认证、全栈领域优质创作者、新星计划导师“星荐官共赢计划” 发起人
  • 现象级专栏《白宝书系列》作者文章知识点浅显易懂且不失深度TFS-CLUB社区创立者旨在以“赋能 共赢”推动共建技术人成长共同体

专栏系列(点击解锁)学习路线(点击解锁)
Python全栈白宝书 零基础入门篇
语法进阶篇
自动化办公篇
自动化测试实战篇
数据库开发实战篇
爬虫入门与实战
数据分析篇
前端入门+flask 全栈篇
django+vue全栈篇
拓展-人工智能入门


⭐️ 什么是字典?

  • 字典是由多个键 (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'])
# >>> neo
print(man['birthday'])
# >>> 2000-01-01
print(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']))                                                  
# >>> <class 'str'>   

print(type(person['age']))                                                   
# >>> <class 'int'> 

print(type(person['height']))
# >>> <class 'float'> 

特殊情况:声明一个空字典

# 空字典
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 x
True
>>> 'c' in x
False
  • 在第 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

姓名英语语文数学
huahua959899
dandan9899100
xingxing1009798
# 以学生的姓名作为key,各科成绩作为value
dict_1 = {'huahua': [95, 98, 99], 'dandan': [98, 99, 100], 'xingxing': [100, 97, 98]}
print('huahua的各科成绩分别是:' + str(dict_1.get('huahua')))


# dict_2以学科作为key,学生成绩作为value
dict_2 = {'英语': [95, 98, 100], '语文': [98, 99, 97], "数学": [99, 100, 98]}
print('三名同学的英语成绩分别是:' + str(dict_2.get('英语')))