首页 » 网站建设 » php字典的keys技巧_零根本Python完全自学教程17Python中的字典完全解读

php字典的keys技巧_零根本Python完全自学教程17Python中的字典完全解读

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

17.1、python中字典的观点、特色、创建和删除详解

在前面的Python课程学习中,我们学到了序列中的列表和元组,本日开始讲解序列的另一个常用数据构造--字典。

17.1.1、字典的观点

字典(dictionary)是无序的、可变的、保存的内容因此“键-值对”的形式存储的序列。

php字典的keys技巧_零根本Python完全自学教程17Python中的字典完全解读

我们怎么去理解Python中的字典呢?我们读小学的时候,都用过《新华字典》,在《新华字典》中通过拼音或者部首,我们可以快速的查到对应的笔墨和解释。
个中,《新华字典》里的拼音或者部首相当于Python中字典的键(key),而对应的汉字和解释相称于Python中字典的值(value)。
键是唯一的,而值可以有多个。
键及其关联的值称为“键值对”。

php字典的keys技巧_零根本Python完全自学教程17Python中的字典完全解读
(图片来自网络侵删)
17.1.2、字典的紧张特色

字典的紧张特色如下:

17.1.2.1、通过键而不是通过索引来读取

字典有时也称为关联数组或者散列表(hash)。
它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。

17.1.2.2、字典是任意工具的无序凑集

字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序。
这样可以提高查找顺序。

17.1.2.3、字典是可变的,并且可以任意嵌套

字典可以在原处增长或者缩短(无须生成一份拷贝),并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。

17.1.2.4、字典中的键必须唯一

不许可同一个键涌现两次,如果涌现两次,则后一个值会被记住。

17.1.2.5、字典中的键必须不可变

字典中的键是不可变的,以是可以利用数字、字符串或者元组,但不能利用列表。

和列表、元组一样,字典也有它自己的类型。
在 Python 中,字典的数据类型为 dict,通过type()函数即可查看:

a = {'A': 1, 'B': 2, 'C': 3} #a是一个字典类型print(type(a))

运行结果如下:

<class 'dict'>>>> 17.1.3、字典的创建

我们在定义字典时,每个元素都包含了两部分:键(key)和值(value),并且在“键”和“值”之间利用英文冒号分隔,相邻两个元素利用英文逗号分离,所有的元素都放在一个大括号“{}”中,语法格式如下:

dictionary = {'key1':'value1', 'key2':'value2', ..., 'keyn':'valuen',}

个中,干系的参数值如下:

dictionary:表示字典名称;

key1, key2, ..., keyn:表示元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;

value1, value2, ..., valuen:表示元素的值,可以是任何数据类型,不是必须唯一。

例如,某中学初三1班,M同学的语数英的成绩,用字典保存,代码如下:

chengji = {'语文':'88','数学':'96','英语':'86'}print(chengji)

运行结果如下:

{'语文': '88', '数学': '96', '英语': '86'}>>>

好了,大略的讲解了一下字典的语法,下面站长在线来给大家谈谈创建字典的8大方法:

17.1.3.1、创建空字典

字典和列表,元组一样都是可以创建空值的序列。
在Python中,创建空字典居然还有两个方法:dictionary = {} 或者 dictionary = dict()。

示例3.1.1:用dictionary = {} 方法创建空列表,输出结果,并打印数据类型

dictionary = {}print(dictionary)print("dictionary的数据类型为:",type(dictionary))

运行结果如下:

{}dictionary的数据类型为: <class 'dict'>>>>

示例3.1.2:用dictionary = dict()方法创建空列表,输出结果,并打印数据类型

dictionary = dict()print(dictionary)print("dictionary的数据类型为:",type(dictionary))

运行结果如下:

{}dictionary的数据类型为: <class 'dict'>>>> 17.1.3.2、直接赋值创建字典

上面的,某中学初三1班,M同学的语数英的成绩,保存为字典便是直接赋值创建字典。

chengji = {'语文':'88','数学':'96','英语':'86'}print(chengji)

运行结果如下:

{'语文': '88', '数学': '96', '英语': '86'}>>> 17.1.3.3、通过给定的“键值对”创建字典

语法格式如下:

dictionary = dict(key1=value1,key2=value2,...,keyn=valuen)

个中,干系参数如下:

dictionary:表示字典名称;

key1, key2, ..., keyn:表示元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;

value1, value2, ..., valuen:表示元素的值,可以是任何数据类型,不是必须唯一。

示例3.3:

a = dict(A = 1, B = 2, C =3)print(a)

运行结果为:

{'A': 1, 'B': 2, 'C': 3}>>> 17.1.3.4、通过二元组列表创建

定义一个二元组列表并且赋值,

list = [('A', 1), ('B', 2), ('C', 3)]a = dict(list)print(a)

运行结果为:

{'A': 1, 'B': 2, 'C': 3}>>> 17.1.3.5、通过映射函数创建字典

语法如下:

dictionary = dict(zip(list1,list2))

个中,干系参数解释如下:

dictionary:表示字典名称。

zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip工具。
如果想得到元组,可以将zip工具利用tuple()函数转换为元组;如果想得到列表,则可以利用list()函数将其转换为列表。

list1:表示一个列表,用于指定要天生字典的键。

list2:表示一个列表,用于指定要天生字典的值。
如果list1和list2的长度不同,则与最短的列表长度相同。

示例3.5:某高校寝室住着4大美女,将他们的名字保存在一个列表中,相应的年事保存在另一个列表中,根据名字和年事创建一个字典。

思路:在IDLE中,我们打开草稿文件000.py,先定义两个均包含4个元素的列表,在运用dict()函数和zip()函数,将两个列表转化为对应的字典,并输出该字典。

name = ['美琳','梦洁','雪丽','美莲']age = [18,19,19,18]a = dict(zip(name,age))print(a)

运行结果为:

{'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}>>> 17.1.3.6、通过dict工具的fromkeys()方法创建字典。

Python 中,还可以利用 dict 字典类型供应的 fromkeys() 方法创建带有默认值的字典,详细魄式为:

dictionary = dict.fromkeys(list,value=None)

个中,list 参数表示字典中所有键的列表(list);value 参数表示默认值,如果不写,则为空值 None。

kemu = ['语文', '数学', '英语'] #作为键的列表a = dict.fromkeys(kemu, 100) #指定科目的默认成绩为100print(a)

运行结果如下:

{'语文': 100, '数学': 100, '英语': 100}>>> 17.1.3.7、通过字典推导式创建

(字典的末了一个知识点再详细讲解字典推导式)

a = {i:2i for i in range(3)}print(a)

运行结果如下:

{0: 0, 1: 2, 2: 4}>>> 17.1.3.8、其他方法

list = ['A', 1, 'B', 2, 'C', 3]a= dict(zip(list[::2], list[1::2]))print(a)

运行结果:

{'A': 1, 'B': 2, 'C': 3}>>> 17.1.4、字典的删除

同列表和元组一样,不再须要的字典也可以利用del命令删除。
例如,通过下面的代码即可将已经定义的字典删除。

del dictionary

其余,如果只是想删除字典的全部元素,可以利用字典工具的clear()方法。
实行clear()方法后,原字典将变为空字典。
例如,下面的代码将打消字典的全部元素。

dictionary.clear()

除了上面先容的方法可以删除字典元素,还可以利用字典工具的pop()删除并返回指定“键”的元素,以及利用字典工具的popitem()方法删除并返回字典中的一个元素。

17.2、在Python中访问字典详解

由于昨天上午在做其他的,下午开始更新教程,一贯到了网上12点都没有完成,由于做的是小白的新手教程,须要参考很多的资料,才能完成课程的编写。
等我在网站和各个平台发布的时候,全部都是16日的凌晨发布的,相称于11月15日着24个小时,没有更新一篇文章。

从今往后要吸取教训,尽可能的在上午,至少就要不才午就要完成教程的更新。
当然除了Python的新手教程更新以外,还要动手更新html、CSS、JavaScript、 php、Vue等教程,那样我争取在明年年底的时候,开拓出自己的建站CMS,让更多的人免费的利用到更好的CMS系统,让想在自己行业深耕的人,搭建好自己的 知识体系,做事好自己的客户。

为什么我要一边学习一边更新免费的小白教程呢?由于我希望所有的人和我一样,可以通过学习新手教程,能够完成和我一样的学习效果,在全体网络上面,险些没有系统的图文教程。
当然,视频教程很多,很多公司都出了自己的完全的视频教程。
拿新手Python教程来说,什么400集的,600集的都有。
但是系统的图文教程,详细讲解的还真没有。
当然像菜鸟教程、W3School这样的网站的图文教程是 《Python3.10.0 官方中文参考文档》属于参考文档,没有深入浅出的讲解,有一些很随意马虎看懂,有一些却是看不懂。
就像法律、数学,不是把法律条文、数学公式摆在这里就能看得懂的。

以是我在出品自己的Python教程时,是参考了很多很多的网站教程、视频教程、参考手册等内容,终极完成全面,精准,浅近易懂的文章教程。

本日是2021年11月16日,目前正在CSDN 看《2021 Google 开拓者大会直播》,一边看直播,一边写本日的课程吧!
再回到主题,本日要分享的是在Python中访问字典。

17.2.1、利用print()函数访问字典

在Python中访问字典,同访问列表、元组差不多,都是利用print()函数。

以昨天的内容为例,某高校寝室住着4大美女,将他们的名字保存在一个列表中,相应的年事保存在另一个列表中,根据名字和年事创建一个字典。

name = ['美琳','梦洁','雪丽','美莲']age = [18,19,19,18]a = dict(zip(name,age))print(a)

运行结果为:

{'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}>>>

在Python中利用字典时,很少会直接输出字典的全部内容,而是根据指定的键得到相应的结果。

在Python中,访问字典的元素,通过键来访问的。
(不像列表和元组,可以通过索引访问)。

如,要想获取上方“雪丽”的年事,可以利用以下代码:

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}print("雪丽的年事为:",a['雪丽'])

输出结果为:

雪丽的年事为: 19>>>

如果获取的指定键不存在,则会涌现以下KeyError缺点,如:

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}print("韩梅梅的年事为:",a['韩梅梅'])

输出结果为:

Traceback (most recent call last): File "D:\Python\Python310\Doc\000.py", line 2, in <module> print("韩梅梅的年事为:",a['韩梅梅'])KeyError: '韩梅梅'>>>

在实际开拓中,很可能我们不知道当前存在什么键,以是须要避免该非常的产生。
详细的办理方法是利用if语句对不存在的情形进行处理,即给一个默认值。
例如,可以将上面的代码修正为以下内容。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}print("韩梅梅的年事为:",a['韩梅梅'] if '韩梅梅' in a else '我的字典里没有此人')

即当“韩梅梅”不存在时,将显示以下内容。

韩梅梅的年事为: 我的字典里没有此人>>> 17.2.2、利用字典工具的get()方法访问字典

其余,Python中推举的方法是利用字典工具的get()方法获取指定键的值。
其语法格式如下:

dictionary.get(key[,default])

个中,dictionary为字典工具,即要从中获取值的字典;key为指定的键;default为可选项,用于当指定的键不存在时,返回一个默认值,如果省略,则返回None。

例如,通过get()方法获取“雪丽”的年事,可以利用下面的代码。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}print("雪丽的年事为:",a.get('雪丽'))

实行结果如下:

雪丽的年事为: 19>>>

在Python开拓中,为理解决在获取指定键的值时,因不存在该键而导致抛出非常,可以为get()方法设置默认值,这样当指定的键不存在时,得到结果便是指定的默认值。
例如,将上面的代码修正为以下内容。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}print("梅梅的年事为:",a.get('梅梅','我的字典里没有此人'))

运行结果为:

梅梅的年事为: 我的字典里没有此人>>> 17.3、在Python中遍历字典的三大方法详解

字典因此“键-值对”的形式存储数据的,以是就可能须要对这些“键-值对”进行获取。
Python供应了遍历字典的方法,通过遍历可以获取字典中的全部“键-值对”。

17.3.1、利用字典工具的items()方法可以遍历字典的项和字典的“键-值对”。

字典工具的items()方法,语法如下:

dictionary.items()

个中,dictionary为字典工具;返回值为可遍历的“键-值对”元组列表。

17.3.1.1、遍历字典的项。

例如,定义一个字典,然后通过items()方法获取“键-值对”的元组列表,并输出全部项,代码如下:

chengji = {'语文':'88','数学':'96','英语':'86'}for item in chengji.items(): print(item)

运行结果如下:

('语文', '88')('数学', '96')('英语', '86')>>>

上面的示例得到的是元组中的各个元素,我们可以称为遍历字典的项。

17.3.1.2、遍历字典的“键-值对”。

想要获取到详细的“键-值对”,可以通过for循环遍历该元组列表。
可以利用下面的代码进行遍历。

chengji = {'语文':'88','数学':'96','英语':'86'}for key,value in chengji.items(): print(key,"的成绩是",value)

运行结果为:

语文 的成绩是 88数学 的成绩是 96英语 的成绩是 86>>>

上面获取到的详细的每个键和值,我们称为遍历字典的“键-值对”。

站长在线温馨提示:字典的项是元组列表带(),字典的“键-值对”,是详细的键和值不带()。
部分教程没有对字典的项和字典的“键-值对”进行区分。

17.3.2、利用字典工具的keys()方法可以获取字典的“键”序列。

其语法格式如下:

dictionary.keys()

个中,dictionary为字典工具;返回值为可遍历的“键”的序列。
想要获取到详细的“键”,可以通过for循环遍历该序列。

例如,定义一个字典,然后通过keys()方法获取“键”的序列,并输出全部“键”,代码如下:

chengji = {'语文':'88','数学':'96','英语':'86'}for item in chengji.keys(): print(item)

运行结果如下:

语文数学英语>>>

上面的代码,便是输出了字典里面的全部“键”,下面我们来输出字典里面的全部“值”。

17.3.3、利用字典工具的values()方法可以获取字典的“值”序列。

其语法格式如下:

dictionary.values()

个中,dictionary为字典工具;返回值为可遍历的“值”的序列。
想要获取到详细的“值”,可以通过for循环遍历该序列。

例如,定义一个字典,然后通过values()方法获取“值”的序列,并输出全部“值”,代码如下:

chengji = {'语文':'88','数学':'96','英语':'86'}for item in chengji.values(): print(item)

运行结果如下:

889686>>> 17.4、在Python中添加、修正、删除和更新字典元素详解17.4.1、在Python中添加字典元素。

由于字典是可变序列,以是可以随时在个中添加“键-值对”,这和列表类似。
向字典中添加元素的语法格式如下:

dictionary[key] = value

详细参数解释如下:

dictionary:表示字典名称;

key:表示要添加元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组;

value:表示元素的值,可以是任何数据类型,不是必须唯一。

例如,还是以之前的保存4位美女的年事为例,在创建的字典中添加一个元素,并显示添加后的字典,代码如下:

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a['梅梅'] = 20print(a)

运行结果如下:

{'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18, '梅梅': 20}>>>

从上面的结果中,可以看出又添加了一个“键”为“梅梅”的元素。

17.4.2、在Python中修正字典元素。

由于在字典中,“键”必须是唯一的,以是如果新添加元素的“键”与已经存在的“键”重复,那么将利用新的“值”更换原来该“键”的值,这也相称于修正字典的元素。

例如,再添加一个“键”为“梦洁”的元素,这次设置她为“20”。
可以利用下面的代码。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a['梦洁'] = 20print(a)

运行结果如下:

{'美琳': 18, '梦洁': 20, '雪丽': 19, '美莲': 18}>>>

从上面的结果可以看出,并没有添加一个新的“键”为“梦洁”的元素,而是直接对“梦洁”进行了修正。

17.4.3、在Python中删除字典元素。
17.4.3.1、利用del命令删除指定元素

当字典中的某个元素不须要时,可以利用del命令将其删除。

例如,要删除字典dictionary的键为“梦洁”的元素,可以利用下面的代码。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}del a['梦洁']print(a)

运行结果如下:

{'美琳': 18, '雪丽': 19, '美莲': 18}>>>

从上面的运行结果中可以看到,在字典a中只剩下3个元素了。

站长在线温馨提醒:

当删除一个不存在的键时,将抛出 KeyError 的非常。
如:

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}del a['梅梅']print(a)

运行结果为:

Traceback (most recent call last): File "D:\Python\Python310\Doc\000.py", line 2, in <module> del a['梅梅']KeyError: '梅梅'>>>

一样平常情形下,须要将上面的代码修正为以下内容,从而防止删除不存在的元素时抛出非常。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18} # 指定一个原始字典if '梅梅' in a: # 如果在字典中 del a['梅梅'] # 删除一个元素else: # 否则 print("你要删除的键不在字典中") # 见告结果print("原字典为:",a) # 输出原字典

运行结果为:

你要删除的键不在字典中原字典为: {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}>>> 17.4.3.2、利用clear()方法清空字典元素

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a.clear()print(a)

运行结果为:

{}>>>

上面就解释了利用clear()方法会清空字典里面的所有元素。

17.4.3.3、利用pop()方法删除字典中指定的元素

pop()方法和del命令类似,都是指定元素的键来删除该元素。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a.pop('梦洁')print(a)

运行结果为:

{'美琳': 18, '雪丽': 19, '美莲': 18}>>>

从上面结果看出,pop()方法和del命令是一样的效果。

17.4.3.4、利用popitem() 方法删除字典中末了一个键值对。

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a.popitem()print(a)

运行结果为:

{'美琳': 18, '梦洁': 19, '雪丽': 19}>>> 17.4.4、在Python中更新字典元素。

利用update() 方法更新字典元素。

update() 方法和我们上面说的添加字典和修正字典类似,这时候有两种情形发生:

17.4.4.1、当update() 给定的键值对,在原字典不存在时,就会增加字典元素;17.4.4.2、当update() 给定的键值对,在原字典存在时,就会修正字典元素;

请看下面的例子:

a = {'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}a.update({'梅梅': 18, '梦洁': 20}) print(a)

运行结果为:

{'美琳': 18, '梦洁': 20, '雪丽': 19, '美莲': 18, '梅梅': 18}>>>

通过上面结果可以看出,利用update() 方法,给定的键值对没有时,会增加一个键值对;给定的键值对存在时,就会修正字典元素。

17.5、Python中的字典推导式详解

我们在前面学过《python中的列表推导式详解》和《Python中的元组推导式详解》,本日我们来学习《Python中的字典推导式详解》。

和列表推导式类似,利用字典推导式可以快速的天生一个新的字典。

17.5.1、天生指定例模的数值字典。
语法格式如下:

dictionary = {Expression for var in range}

dictionary:表示天生的字典名称

Expression:表达式,用于打算新字典的元素

var:循环变量

range:采取range()函数天生的range工具

例如:定义一个10以内的平方数的字典,代码如下:

a = {i:i2 for i in range(10)}print(a)

运行结果为:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}>>> 17.5.2、利用字典推导式也可以根据列表天生字典。

列如,定义两个4个元素的列表,,在运用字典推导式和zip()函数,将两个列表转换为对应的字典,并且输出该字典,代码如下:

name = ['美琳','梦洁','雪丽','美莲']age = [18,19,19,18]a = {i:j for i,j in zip(name,age)}print(a)

运行结果为:

{'美琳': 18, '梦洁': 19, '雪丽': 19, '美莲': 18}>>>

站长在线温馨提醒:大家可以和 映射函数创建字典dictionary = dict(zip(list1,list2))进行比拟哦!

干系阅读:

本站百科词条:Python

《零根本Python完备自学教程》目录

1、认识python

2、安装python及写第一个Python程序

3、Python开拓工具先容

4、Python语法特点

5、Python中的变量

6、Python中的基本数据类型

7、Python中的基本输入和输出

8、Python中常用的运算符

9、Python中运算符的优先级和条件表达式

10、Python中的三大程序构造

11、Python中的选择语句

12、Python中的循环语句

13、Python中的break语句、continue语句和pass语句

14、Python中的序列知识详解

15、Python中的列表

16、Python中的元组系列知识

标签:

相关文章

CMS与框架,构建现代网站的核心力量

随着互联网技术的飞速发展,网站已经成为企业、个人展示形象、交流信息的重要平台。在这个信息爆炸的时代,如何快速、高效地搭建一个功能丰...

网站建设 2024-12-26 阅读0 评论0

IT客户经理的角色定位与职业发展之路

随着信息技术的飞速发展,IT行业在我国经济中的地位日益重要。作为IT客户经理,如何在这个充满机遇与挑战的时代找准自己的角色定位,实...

网站建设 2024-12-26 阅读0 评论0