> 文档中心 > Python零基础入门篇 - 15 - Python中的字典

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留下的乱七八糟系列

                                                                                  🎉🎉欢迎持续关注🎉🎉

Python零基础入门篇 - 15 - 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('英语')))