7. ✎会查新华字典不?会。Python字典已经掌握了

梦想橡皮擦 等级 495 0 0

学编程要简单、粗暴。更要有效,很多时候学的越多,忘得越快。但编程总有那么一天顿悟的时候,而顿悟的契机目前就是建立在你跟橡皮擦坚持打卡 100 天,在评论区坚持跟橡皮擦卡学习的朋友,在 100 天之后,橡皮擦将送出 神秘大奖

七、查字典怎么查,Python 字典就怎么用

已经学完了列表与元组,那这两个都是按照顺序排列的,所以可以用索引取到值,本篇博客要学习的是字典,由上文可知,字典肯定就是不能按照索引取到值,就是没顺序,非序列的数据结构。

7.1 字典的基本操作

7.1.1 字典的定义

字典可以看成是一种列表型的数据结构,也是可以容纳很多其它数据类型的容器,但字典当中的元素使用 “键-值” 来表示的,而且“键-值” 成对出现,键与值之间存在的关系可以描述为,通过键取值(这个是字典的核心概念,就像通过部首查字典一样的)。

字典的语法格式如下:

# my_dict 是一个变量名
my_dict = {键1:值1,键2:值2......}

其中字典的值即上述格式中的 值1值2 可以是数值、字符串、列表、元组等内容。

例如可以通过字典来表示一个中英对照表。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
print(my_dict)
print(type(my_dict))

输出结果为:

{'red': '红色', 'green': '绿色', 'blue': '蓝色'}
<class 'dict'>

现在需要对字典再次建立一下认知,字典就是建立了键到值的一一对应关系。

7.1.2 获取字典的值

字典是通过键值定义的,通过键去获取值,因此字典中不允许出现重复的键。获取字典中值的语法格式为:

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
print(my_dict["red"])

仔细看非常类似列表中元素的获取,只是将索引位置替换为了

7.1.3 字典中增加元素、修改元素、删除元素

增加元素

在字典中增加一个元素非常简单,只需要通过下述语法格式即可实现。

my_dict[键] = 值

例如在刚才的颜色翻译字典中在增加一个橙色的对应键值,代码如下:

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict["orange"] = "橙色"

print(my_dict)

如果希望在字典中增加更多的键值对应关系,依次编写下去即可。

修改元素

修改字典中元素记住准确的应该叫做修改元素的值,例如将代码中 red 对应的值 红色 修改为 浅红色,通过下述代码完成。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict["red"] = "浅红色"

print(my_dict)

通过 my_dict[要修改的键] = 新的值 来进行修改即可完成任务。

删除元素

如果想要删除字典中某一个具体的元素,只需要通过 del 关键字加上 my_dict[待删除元素的键] 即可完成。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
del my_dict["red"]

print(my_dict)

以上内容可以删除特定元素,使用字典的一个 clear 方法,可以将字典清空。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict.clear()

print(my_dict)

以上内容会输出 {} 该符号表示空字典。

除了将字典清空以外,还可以直接将字典变量删除。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
del my_dict

print(my_dict)

删除字典变量之后,在打印 my_dict 程序直接报错,提示 name 'my_dict' is not defined 变量未定义,在删除字典的时候一定要注意别误删整个字典,除非程序要求这么实现。

7.1.4 字典的补充知识

空字典

刚才其实已经提及了一个空字典是如何创建的,建立空字典的语法如下:

my_dict = {}

空字典一般用于逻辑占位,好复杂啥叫逻辑占位,就是先声明后面在进行扩展的一个小技巧。

获取字典元素数量

列表与元组都可以使用 len 来获取元素数量,同样的方法适用于字典,语法格式如下:

my_dict_length = len(my_dict)

空字典的元素数量为 0,可以进行尝试一下。

字典可读性书写

在很多时候一个程序不是由一个人可以独立完成,需要一个团队进行配合,如何让自己的代码可读性(别人能看懂)变高在代码编写的时候就变的非常重要了。字典为了增加可读性,建议一行定义一个元素。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

print(my_dict)

7.2 字典的遍历

字典也需要遍历输出里面的每一个元素,对于字典咱已经知道是由键值对组成,那对应的遍历输出内容就有所有键值,所有键,所有值。

7.2.1 遍历字典的键 - 值

调用字典的 items 方法可以获取字典的所有键值,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

print(my_dict.items())

该内容输入为:

dict_items([('red', '红色'), ('green', '绿色'), ('blue', '蓝色')])

接下来循环输出字典内容,有几种不同的写法,先尝试编写如下代码,在进行知识点学习。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 直接对 my_dict 进行遍历
for item in my_dict:
    print(item)

# 遍历 my_dict 的 items 方法
for item in my_dict.items():
    print(item)

# 遍历 my_dict 的 items 方法,并用 key 与 value 接收
for key,value in my_dict.items():
    print("键:{},值:{}".format(key,value))

以上三种输出内容请自行查阅。

  1. 第一种输出的是所有的
  2. 第二种将每个键值对当做一个元组输出;
  3. 第三种通过变量与元组之间的赋值直接将键与值输出。

关于变量与元组之间的赋值可以参考下属代码:

a,b = (1,2)
print(a)
print(b)

注意通过该方式进行变量的赋值一定要将左侧的变量与右侧元组中的元素做好对应,一个变量对应元组中的一项,顺序也对应。如果不对应就会出现下述错误 ValueError: too many values to unpack

7.2.2 遍历字典的键

上文学习到的是遍历字典的键值,你可以直接通过 keys 方法获取字典的所有键,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}


for key in my_dict.keys():
    print(key)

7.2.3 遍历字典的值

有 keys 方法获取键,对应的就是通过 values 获取所有值。 这个地方因为和上述内容太相似了,如果想成为一个合格的程序员,学习初期每天的代码量是不能减少的,所以本部分留给你啦。

7.3 字典与其他数据类型的结合

先要认识到字典是一个容器,它可以包含任意数据类型。字典也是一种数据类型,它可以被列表与字典本身等容器类包含。 很绕是吧,其核心是非常简单的,看完代码你就明白了。

7.3.1 列表嵌套字典

直接看效果,一个列表可以嵌套字典。

my_list = [{"name": "橡皮擦", "age": 18},
           {"name": "大橡皮擦", "age": 20}]
print(my_list)
print(my_list[0])

7.3.2 字典嵌套列表

字典中元素的值可以是列表,具体如下:

my_dict = {"colors": ["红色","绿色"],
           "nums": [1,2,3,4,5],
           "name": ["橡皮擦"]}
print(my_dict)

7.3.3 字典嵌套字典

字典的值可以为任意数据类型,那自然可以是字典类型,所以下述代码你应该可以阅读。

my_dict = {"colors": {"keys": ["红色", "绿色"]},
           "nums": [1, 2, 3, 4, 5],
           "name": ["橡皮擦"]}
print(my_dict)

以上内容都是非常简单的写法,总结一句话都是套娃。

7.4 字典的方法

字典有一些特殊的方法需要单独说明一下,如果想要查看字典所有的方法,依据使用 dir 内置函数调用。

7.4.1 fromkeys 方法

该方法目的是创建一个字典,语法格式如下:

# 注意该方法直接通过 dict 调用
# seq 是一个序列,可以为元组,也可以是字典
my_dict = dict.fromkeys(seq)

接下来就通过该方法实际创建一个字典。

my_list = ['red', 'green']

my_dict = dict.fromkeys(my_list)
# 以下内容输出 {'red': None, 'green': None}
print(my_dict)

my_dict1 = dict.fromkeys(my_list, "字典的值")
print(my_dict1)

第一种方式发现输出的字典中所有值为 None(Python 中的特殊值,相当于空),该内容是由于没有设置字典默认值,缺省为 None,如果需要在定义字典的时候初始化该值,在方法中的第二个参数赋值即可。

7.4.2 get 方法

get 方法用于通过键获取值,如果不存在可以设置返回一个默认值,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}
print(my_dict.get("red"))  # 返回红色
print(my_dict.get("red1")) # 返回 None

print(my_dict.get("red1","设置一个找不到返回的默认值"))

7.4.3 setdefault 方法

setdefault 方法与 get 方法用途基本一致,区别是当 setdefault 搜寻不到指定键时,会自定将键值插入字典,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}
print(my_dict.setdefault("red")) # 返回红色
print(my_dict.setdefault("orange")) # 返回 None
print(my_dict) # 输出 {'red': '红色', 'green': '绿色', 'blue': '蓝色', 'orange': None}

最后一行代码输出的结果中已经包含了键 orange 与值 None,你可以在使用 dict.setdefault("orange","橙色") 测试一下默认值。

7.4.4 pop 方法

该方法用于删除字典元素,语法格式如下:

ret_value = dict.pop(key[,default])

既然已经写出了这种标准格式,那先补充一下语法格式的规范,例如 dict.pop(key[,default])key 表示必填参数,[] 包括的参数为非必填参数,这样你可以理解上述语法格式内容是什么了。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 删除指定项
ret_value = my_dict.pop('red')
# 输出被删除的红色
print(ret_value)
# 查看字典 {'green': '绿色', 'blue': '蓝色'}
print(my_dict )

在使用 pop 方法的时候如果找到 key,就会删除该键值对,如果找不到 key 会返回 defalut 设置的值,如果该值没有设置,会报错。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 删除指定项,如果没有设置找不到返回的值,直接报错
ret_value = my_dict.pop('red2')

# 删除指定项,找不到 key1 返回后面设置的值
ret_value = my_dict.pop('red1',"找不到返回的值")

7.5 这篇博客的总结

字典同列表、元组一样都是 Python 中非常重要的数据类型,字典因为键值对的概念存在导致其使用场景更多,初学阶段橡皮擦给大家的意见就是好好的打打代码,先建立对 Python 的整体认知,滚雪球学 Python,这只是第一遍滚。

最后一碗毒鸡汤

我曾天真地以为金钱是万能的,后来才发现,金钱不是万能的,是无所不能的。 O(∩_∩)O 哈哈~

🌸🌸🌸🌸🌸🌸🌸🌸


收藏
评论区

相关推荐

Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
4. 列表一学完,Python 会一半,滚雪球学 Python
滚雪球学 Python,目标就是让 Python 学起来之后,越滚越大。 四、列表一学完,Python 会一半 4.1 列表是个啥 列表,先记住英文为 list ,它是 Python 中一种可以动态添加删除内容的数据类型,由一系列的元素组成。直白点说列表是将多个变量组合在一起的那么一个容器。 很多文章会找一个与列表相似的编程概念,一般会说 P
7. ✎会查新华字典不?会。Python字典已经掌握了
学编程要简单、粗暴。更要有效,很多时候学的越多,忘得越快。但编程总有那么一天顿悟的时候,而顿悟的契机目前就是建立在你跟橡皮擦坚持打卡 100 天,在评论区坚持跟橡皮擦卡学习的朋友,在 100 天之后,橡皮擦将送出 神秘大奖。 七、查字典怎么查,Python 字典就怎么用 已经学完了列表与元组,那这两个都是按照顺序排列的,所以可以用索引取到值,本篇博
python装饰器详解
你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时候发生的真实对白。 \分割线
知乎从Python转为Go,是不是代表Go比Python好?
众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言
如何用python进行数据分析——00环境配置
↑一个宝藏公众号,长的好看的人都关注了  简单介绍一下Python吧 Python是一种面向对象程序设计语言,由荷兰人吉多·范罗苏姆于1989年底发明。目前是最常用也是最热门的一门编程语言之一,应用非常广泛。 (不是这个面对对象) 为什么选择python呢? 有人说python是万能的,除了生孩子不会,什么都会。 有人说python是未来
为啥要学Python?
为啥要学Python?如果我跟你说你现在用一天拉出来的财务统计表,学了Python之后能用1个小时就搞定,你学不学?如果你花了8个小时扒的竞品投放数据,学了Python之后能用30min搞定,你学不学?你总羡慕你的同事能6点下班,陪女朋友蹦迪夜生活丰富,你却在满脸油头的爆肝加班,学了Python之后,你也能这样,你学不学?如果我跟你说,学会了Python能增
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
最好用的Python学习教程第一篇章
学习不打烊,充电加油只为遇到更好的自己。希望大家如果觉得好的话可以点赞,评论鼓励一下。 一、从这里学起?学Python你应该知道这些内容。 1.1 导语如何快速学会Python?这篇博客会告诉你如何从无到有,构建自己的知识框架,博客主励志打造最好用的Python基础教程。 1.2 为什么要学习Python 简单易学Python是一种代表简单主义思想的语言,
零基础应该如何开始学习python
随着人工智能时代的到来,Python也在不断发展壮大,越来越多的人选择学Python,只要因为它容易学习,功能又强大还可以跨平台。其实Python作为一门脚本语言,难度上相较于其他语言略微简单点,但是对于没有计算机基础的人来说,也是非常难得,可能安装这一步就会难倒大家!1、Python学习确定方向对于刚入门的人来说,要先把Python基础和进阶学透,再继续往
python的学习难?你的方法不对罢了,看看我的。
1、选择Python版本对于使用python的人来说,python的版本就是我们的工作环境,因此,在学习之前需要考虑好学习哪个版本,python2和python3的版本不同,会存在一些差异,虽说不大,但直接学习python3 的话相对来说会好一点,而且跑一趟还能3相对来说对零基础的小白来说更加的友好,容易上手。2、学习Python基础知识Python 是一个
全网最全python学习路线图,让学习不迷路
学习Python有一段时间了,最近也是在不断的整理Python相关的基础知识和学习一些新的知识,想来分享给大家。我刚开始接触Python时,和大多数初学者一样不知道从那里开始学习python,我也在网上找了许多python相关的资料来学习,但是资料多也不见得就好,因为不知道从哪里开始下手,走了许多弯路。后面我就整理了一套对初学者来说学习python能很快上手
简述Python中常见的数据结构
「数仓宝贝库」,带你学数据!导读:Python中常见的数据结构有列表(list)、元组(tuple)、集合(set)、字典(dict)等,这些数据结构表示了自身在Python中的存在形式,在Python中可以输入type(对象)查看数据类型。 1列表 (1)创建列表 列表是Python内置的一种数据类型,它是一种有序的数据集合,是用于存储一连串
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
10行Python代码自动清理电脑内重复文件,解放双手!
](https://mp.weixin.qq.com/mp/appmsgalbum?actiongetalbum&albumid1337012041701326848&bizMzI1MTUyMjc1Mgwechatredirect) 前言 大家好,又到了Python办公自动化系列。今天分享一个系统层面的自动化案例:「给定一个文件夹,使用Python检查