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

python 字典的操作方法,Python精讲python中字典的概念(1)

在前面的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中的元组推导式详解》。本知识点主要内容有:字典的概念、字典的主要特征、字典的创建、字典的删除。

,