Python精讲:python中字典的概念、特征、创建和删除详解

    时间: 浏览:331次  来源:站长在线
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《python中字典的概念、特征、创建和删除详解》。本知识点主要内容有:字典的概念、字典的主要特征、字典的创建、字典的删除。

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python字典的概念、特征、创建和删除详解》。本知识点主要内容有:字典的概念字典的主要特征字典的创建字典的删除


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

1、字典的概念

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

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

2、字典的主要特征

字典的主要特征如下:

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

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

2.2、字典是任意对象的无序集合

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

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

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

2.4、字典中的键必须唯一

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

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

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

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

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

运行结果如下:

<class 'dict'>
>>> 

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大方法:

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'>
>>> 

3.2、直接赋值创建字典

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

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

运行结果如下:

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

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}
>>> 

3.4、通过二元组列表创建

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

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

运行结果为:

{'A': 1, 'B': 2, 'C': 3}
>>> 

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}
>>> 

3.6、通过dict对象的fromkeys()方法创建字典。

Python 中,还可以使用 dict 字典类型提供的 fromkeys() 方法创建带有默认值的字典,具体格式为:

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

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

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

运行结果如下:

{'语文': 100, '数学': 100, '英语': 100}
>>> 

3.7、通过字典推导式创建(字典的最后一个知识点再详细讲解字典推导式)

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

运行结果如下:

{0: 0, 1: 2, 2: 4}
>>> 

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}
>>> 

4、字典的删除

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

del dictionary

另外,如果只是想删除字典的全部元素,可以使用字典对象的clear()方法。执行clear()方法后,原字典将变为空字典。例如,下面的代码将清除字典的全部元素。

dictionary.clear()

除了上面介绍的方法可以删除字典元素,还可以使用字典对象的pop()删除并返回指定“键”的元素,以及使用字典对象的popitem()方法删除并返回字典中的一个元素。

到此为止,本文学习的是《Python中的元组推导式详解》。本知识点主要内容有:字典的概念、字典的主要特征、字典的创建、字典的删除。

本文地址:https://www.olzz.com/pythonzidiandegainiantezhengchuangjianheshanchu.html
码字不易,打个赏呗
站长在线小编感谢你的支持!

猜你喜欢

站长在线Python教程:Python中类定义详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中类定义详解》。

2022-02-23  分类:Python学堂  浏览:189次


站长在线Python教程:python中面向对象相关概述详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《python中面向对象相关概述详解》。本文的主要内容有:面向对象是什么、面向对象中的对象是什么、Python中的类是什么、面向对象编程的特点有哪些?

2022-02-14  分类:Python学堂  浏览:158次


站长在线零基础Python完全自学教程23:函数的返回值、作用域和匿名函数

导读:欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第23课《函数的返回值、作用域和匿名函数》。本文是一个大课程分成了下面4节小课程:Python中函数的返回值、Python函数中的局部变量、Python函数中的全局变量、Python函数中的匿名函数等内容。

2022-02-09  分类:Python学堂  浏览:180次


站长在线Python教程:Python函数中的匿名函数详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python函数中的匿名函数详解》。本文的主要内容有:匿名函数的定义、匿名函数的表达式、匿名函数的注意点、匿名函数的优点、匿名函数的应用举例。

2022-02-01  分类:Python学堂  浏览:204次


站长在线Python教程精讲:在Python函数中的全局变量详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中的全局变量详解》。本文的主要内容有:什么是全局变量、在函数外部定义的变量是全局变量、在函数内部定义中添加global关键词后变成全局变量。

2022-01-10  分类:Python学堂  浏览:331次


站长在线Python教程精讲:在Python函数中的局部变量详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中的局部变量详解》。本文的主要内容有:变量的作用域的概念、局部变量的概念、局部变量的举例。

2022-01-06  分类:Python学堂  浏览:275次


Python常用英语及用法

站长在线站长,准备系统的学习Python知识,但是对我来说,英语实在是太差了,当然我知道的是,不仅仅我,很多人在学习Python的时候,也是不知道这些英语单词的意思与用法的,在这里站长在线站长就把这些英语整理出来,把英语以及中文意思、用法一起贴出来,让大家一起来学习。

2022-01-02  分类:Python学堂  浏览:354次


站长在线Python精讲:Python中函数的返回值

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中函数的返回值》。本文的主要内容有:函数的返回值的含义、函数设置返回值的作用、return语句位置与多条 return语句的总结。

2021-12-29  分类:Python学堂  浏览:312次


站长在线零基础Python完全自学教程22:在Python中函数的参数传递

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第22课《在Python中函数的参数传递》。本文是一个大课程分成了下面5节小课程:在Python函数中理解形式参数和实际参数、在Python函数中参数传递的位置参数详解、在Python函数中的关键字参数详解、在Python函数中的默认参数详解、在Python函数中的可变参数详解。

2021-12-26  分类:Python学堂  浏览:307次


站长在线零基础Python完全自学教程21:Python中函数的创建和调用

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第21课《 Python中函数的创建和调用》。本文的主要内容有:在Python中函数的定义与创建、在Python中函数的调用详解。

2021-12-26  分类:Python学堂  浏览:318次