首页 > 编程语言 >python基础第六课——字典

python基础第六课——字典

时间:2024-12-13 13:32:06浏览次数:6  
标签:20 name 第六课 python age 键值 student 字典

系列文章目录 

 

系列文章目录

Python基础学习第一课——python环境的配置及vscode的安装汉化

Python基础第二课——基础知识

Python基础第三课——条件语句和循环语句

Python基础第四课——字符串的相关操作

Python基础第五课——列表和元组

Python基础第六课——字典(本篇文章内容)


文章目录

系列文章目录 

文章目录

前言

一、字典是什么?

二、字典的定义

三、字典的创建

1.直接创建

2. 使用dict()函数创建

四、字典的访问

1.通过键访问值

2.遍历

 五、字典的基本相关操作

1、修改值

2、更新字典

3、删除操作

4、清空字典

5、更多操作

5.1 字典的嵌套

5.2 字典的排序

5.3 字典的比较

六、字典的应用

总结


前言

上一篇文章中我们讲到了python的列表和元组,这篇文章中,我们继续来讲解python中特别重要的一个容器类型——字典,如果想了解系列目录中前面的python基础内容,请在我的主页查找阅读。


一、字典是什么?

字典是python所特有的一种无序、可变的容器类型,且是最强大的数据类型之一,它可储存各种数据类型,如字符串、数字以及元组等其他容器模型。

二、字典的定义

字典(dict),它以键值对(key键 - value值)的形式存储数据。字典中的键必须是唯一且不可变的数据类型(如字符串、数字或元组),而值可以是任何数据类型,包括其他字典、列表等。

三、字典的创建

1.直接创建

字典的一般格式为:字典名={元素1,元素2...},元素即以键值对的形式存在

字典的每个键值对 key:value 用冒号 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 

如下所示:

d = {key1 : value1, key2 : value2 }

 空字典格式:字典名={},如下所示:

d = {}

举个简单的代码示例:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
print(student)
#在这个例子中,"id"、"name"、"age"和"grade"是键,1、"Alice"、20和"A"是相应的值。
stu = {}
print(stu)
#在这个例子中,stu被定义为一个空字典,输出结果就是一个简单的{}

2. 使用dict()函数创建

student = dict(id = 1, name ='Alice', age = 20, grade ='A')
print(student)

这种方式和直接使用花括号创建类似,只是语法上有所不同。上述代码的输出结果跟前面给的那个例子的输出结果相同。

还可以通过将包含键值对的序列(如列表)传递给dict()函数来创建字典。例如,假设有一个包含两个元组的列表,每个元组包含两个元素(键和值):

data_list = [("key1", "value1"), ("key2", "value2")]
my_dict = dict(data_list)
print(my_dict)
#这将创建一个包含"key1": "value1"和"key2": "value2"两个键值对的字典。
#输出结果为:{'key1': 'value1', 'key2': 'value2'}

创建字典时的注意事项: 

  • 键key一般是唯一的,如果重复只会保留第一个,值value不需要唯一。
  • 键key可以是任意的数据类型,但不能出现可变的数据类型,保证键key唯一。
  • 键key的一般形式为字符串。

四、字典的访问

1.通过键访问值

格式:value=字典名[key]

例如,对于前面定义的  student字典,如果要访问学生的姓名,可以使用以下方式:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
print(student["name"])
#这将输出"Alice"。如果访问的键不存在,会抛出KeyError异常

学过C语言的朋友,有没有觉得这个很像C语言中的结构体,但是定义和访问起来更加方便 

如果我们访问到不存在的键而且还不想收到KeyError的报错信息,可以使用get()的方式,按我们想要的方式去给出一个提示,说明访问的键不存在,这里给一个简单的示例:

#get()方法的语法:
#字典名.get("要访问的键","指定键不存在时返回的值")
#如果要访问的键存在,那就返回该键对应的值,如果不存在,那就返回第二个参数中的内容
#指定键不存在时返回的值默认为None
#还是按照上面定义的字典给出示例:
student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
print(student.get("major", "未找到该键对应的值"))
#这里尝试访问一个没有被定义的键major,但是因为这个键不存在,所以就返回输出了第二个参数:"未找到该键对应的值"

2.遍历

使用for循环来遍历字典中的键、值或键值对:

 遍历键:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
for key in student:
    print(key)
#这将输出字典student中的所有值
#输出结果为:
#id
#name
#age
#grade

遍历值:要遍历字典的值,可以使用values()方法。例如:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
for value in student.values():
    print(value)
#这将输出字典student中的所有值
#输出结果为:
#1
#Alice
#20
#A

遍历键值对:使用items()方法,同时遍历字典中的键和值,例如: 

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
for key, value in student.items():
    print(key, value)
#这将输出字典student中的每个键值对
#输出结果:
#id 1
#name Alice
#age 20
#grade A

 五、字典的基本相关操作

1、修改值

可以通过键来修改字典中的值。例如:

# 定义一个字典
dict = {"name": "小明", "age": 20, "sex": "man"}
#对其中一个键对应的值进行修改
dict["name"]="小张"
print(dict)
#输出结果为:{'name': '小张', 'age': 20, 'sex': 'man'}

2、更新字典

可以使用 update()方法来更新一个字典,update()方法可以接受另一个字典作为参数,并将其中的键值对添加到原字典中。如果有相同的键,则会覆盖原字典中的值。举个例子:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
new_stu = {"grade": "A+", "major": "Math"}
student.update(new_stu)
print(student)
#输出结果为:{'id': 1, 'name': 'Alice', 'age': 20, 'grade': 'A+', 'major': 'Math'}
#现在字典student会添加"major"键值对,并将"grade"的值更新为"A+"。

3、删除操作

可以使用del语句来删除字典中的键值对。例如,要删除student字典中的"id"键值对: 

 

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
del student["id"]
print(student)
#我们用del删除了id这个键值对,现在字典student中就没有"id"这个键值对了。
#该代码输出结果为:{'name': 'Alice', 'age': 20, 'grade': 'A'}

4、清空字典

 使用clear()方法可以清空字典中的所有内容。例如:

student = {"id": 1, "name": "Alice", "age": 20, "grade": "A"}
student.clear()
print(student)
#字典student里的内容就被清除了,输出得到的结果为一个空字典

5、更多操作

5.1 字典的嵌套

字典的值可以是另一个字典,这就形成了字典的嵌套。例如,我们可以构建一个包含学生信息和课程成绩的嵌套字典:

students = {
    "student1": {
        "name": "Alice",
        "age": 20,
        "courses": {
            "math": 90,
            "english": 85
        }
    },
    "student2": {
        "name": "Bob",
        "age": 21,
        "courses": {
            "math": 80,
            "english": 75
        }
    }
}

对这个嵌套字典中的元素进行访问,则需要使用多个索引,例如,如果我们想访问student1的english成绩,则需要这样访问:

print(students["student1"]["courses"]["english"])

输出结果即为访问到的值:85

5.2 字典的排序

我们可以使用sorted()函数对字典进行排序,既可以按键来排,也可以根据值来排,这里给一个简单的使用键来排序的示例:

my_dict = {"c": 3, "a": 1, "b": 2}
sorted_keys = sorted(my_dict.keys())
for key in sorted_keys:
    print(key, my_dict[key])
#输出结果为:
#a 1
#b 2
#c 3

5.3 字典的比较

使用==运算符来比较两个字典是否相等。两个字典相等当且仅当它们具有相同的键值对(键和值都相同)。例如: 

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 2, "a": 1}
print(dict1 == dict2)
#返回值为True

 这两个字典中,虽然键值对的顺序不同,但是他们键值对的值都是相同的,所以判定为两字典相同,即返回True

要检查一个字典是否是另一个字典的子集(即包含另一个字典的所有键值对),可以使用字典的items()方法和issubset()方法(如果字典被看作是集合的话)或者通过循环来逐个比较键值对。例如:

dict1 = {"a": 1, "b": 2}
dict2 = {"a": 1, "b": 2, "c": 3}
print(dict1.items() <= dict2.items())
#返回值为: True

六、字典的应用

我们在开始的时候说,字典时python中特有的一种容器类型,且是最强大的数据类型之一,那么这从何体现呢?

首先,字典在存储具有关联性的数据时非常方便。例如,在处理用户配置信息、数据库记录等场景中,通过键来快速检索和修改值可以提高效率。 

其次,字典也常被应用于各种算法和程序逻辑中,因为很多算法和程序逻辑都需要使用到类似哈希表的数据结构来快速查找和处理数据,而我们的字典恰好可以很好的扮演这个角色。

最后,字典可以和其他数据类型协同工作,可以很方便的更新、修改和删除数据,以便最后的处理和分析。


总结

字典是python中很重要的一个数据类型,在以后的实际应用中会经常被使用到,所以一定要熟练掌握它。

如果觉得这篇文章中有哪些地方讲的不对,或者哪里理解不清楚,又或者是觉得还有很重要的点我没有讲到,都可以发在评论区,我们一起讨论交流。

在下一篇文章对于函数的讲解写完之后,就会发布一些python项目实战综合运用一下,毕竟看会了不代表会敲了,会写代码才是真正的成功。

创作不易,希望可以给个三连支持一下~

标签:20,name,第六课,python,age,键值,student,字典
From: https://blog.csdn.net/liyibowen2006/article/details/144437070

相关文章

  • 【java毕设 python毕设】基于springboot的考务管理系统的设计与实现 【附源码+数据库+
    ✍✍计算机编程指导师⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java实战|SpringBoot/SSMPython实战项目|Django微信小程......
  • 【python应用】命令行pdb调试python程序
    首先准备一段有问题的python代码,如下:#cattest.py#摘自:DevOps和自动化运维实战一书#!/usr/bin/envpythons='0'n=int(s)print(10/n)使用python-mpdb进入调试交互模式,常用指令如下l:展示所有源码内容;n:单步执行;p+变量名:打印变量的值;exit:退出调试......
  • python开发环境搭建,包括python、pycharm,每一步都有截图
    一、准备安装包首先,准备好安装包,包括合适版本的python、pycharm、激活工具和激活码。对于python的版本,如果只是学习,选择最新版本就好了。目前开发python的工具主要有VScode与pycharm,强烈推荐pycharm,好用很多!准备好的安装包如下: 二、安装python首先安装pytho......
  • 【Python网络爬虫笔记】11- Xpath精准定位元素
    目录一、Xpath在Python网络爬虫中的作用(一)精准定位元素(二)应对动态网页(三)数据结构化提取二、Xpath的常用方法(一)节点选取(二)谓词筛选(三)轴操作三、Xpath在Python中的安装和使用(一)安装(二)使用Xpath提取特定内容四、Xpath在Python网络爬虫中的典型案例(一)新闻网站......
  • 【Python网络爬虫笔记】12- Xpath快速爬取汽车之家2024年最新二手车信息
    目录一、准备工作二、读取数据三、汽车之家二手汽车网站HTML结构解析四、使用XPath解析数据本文将深入介绍如何使用Python结合XPath来爬取汽车之家二手车信息,包括对汽车之家二手汽车网站的HTML结构解析。一、准备工作首先,我们需要导入lxml库中的etree模块。这个模......
  • 《python基于图像的信息隐藏技术》毕业设计项目
    大家好,我是俊星学长,一名在Java圈辛勤劳作的码农。今日,要和大家分享的是一款《python基于图像的信息隐藏技术》毕业设计项目。项目源码以及部署相关事宜,请联系俊星学长,文末会附上联系信息哦。......
  • python 规则执行
    #*_*coding:utf-8*_*#@Author:zybclassRule:def__init__(self,condition,action):#初始化规则:两个函数,第一个函数成立返回True,执行第二个函数self.condition=conditionself.action=actiondefevaluate(self,facts):......
  • 学习Python的第一天
    第一课:1、Python的下载和安装,注意在安装是下面有个打勾的要勾上。2、PyCharm的下载和安装,在官网,前期使用30天。3、创建自己的博客、微博,注册博客园。第二课:1、我的第一个Python程序:第一部分:人机交互的方式:1图形化Windowsmac2命令行LinuxWindows:win+R输入cmdpri......
  • python 筛选目标区域内的站点
    想处理一下黄河流域内的国家站点数据,那么我需要筛选黄河流域内有哪些站点这里涉及到:青海、四川、甘肃、宁夏、陕西、内蒙、山西、河南、山东有这些省的所有国家站列表,但是需要筛出黄河流域内的站点我用文心一言查了查代码,py使用的是3.9,代码和文心一言给出的有点出入,尤其是使用:s......
  • 计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......