Python精讲:python中字典的概念、特征、创建和删除详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《python中字典的概念、特征、创建和删除详解》。本知识点主要内容有:字典的概念、字典的主要特征、字典的创建、字典的删除。
欢迎你来到站长在线的站长学堂学习python知识,本文学习的是《Python中字典的概念、特征、创建和删除详解》。本知识点主要内容有:字典的概念、字典的主要特征、字典的创建、字典的删除。
在前面的Python课程学习中,我们学到了序列中的列表和元组,今天开始讲解序列的另一个常用数据结构--字典。
1、字典的概念
字典(dictionary)是无序的、可变的、保存的内容是以“键-值对”的形式存储的序列。
我们怎么去理解Python中的字典呢?我们读小学的时候,都用过《新华字典》,在《新华字典》中通过拼音或者部首,我们可以快速的查到对应的文字和解释。其中,《新华字典》里的拼音或者部首相当于Python中字典的键(key),而对应的汉字和解释相当于Python中字典的值(value)。键是唯一的,而值可以有多个。键及其关联的值称为“键值对”。
2、字典的主要特征
字典的主要特征如下:
2.1、通过键而不是通过索引来读取
字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。
字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序。这样可以提高查找顺序。
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
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元
猜你喜欢