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

    时间: 浏览:110次  来源:站长在线
欢迎你来到站长在线的站长学堂学习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
码字不易,打个赏呗
站长在线小编感谢你的支持!
站长在线站长一对一技术培训,100元两个小时
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元

猜你喜欢

站长在线Python精讲:Python中正则表达式的语法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中正则表达式的语法详解》。本知识点主要内容有9点:行定位符、元字符、限定符、字符集、排除字符、选择字符、转义字符、分组、在Python中使用正则表达式语法。

2021-12-07  分类:Python教程  浏览:12次


站长在线零基础Python完全自学教程19:python中字符串完全解读

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础 Python完全自学教程》今天给大家分享的是第19课《 python中字符串完全解读》。本节课是一个大课,我分了这些知识点进行详细讲解:字符串编码转换:encode编码和decode解码详解、使用“+”运算符来拼接字符串详解、使用len()函数计算字符串的长度详解、使用索引和切片的方法截取字符串详解、使用split()方法分割、使用join()方法合并字符串详解、检索字符串的5大方法详解、字符串中字母的大小写转换的4大方法详解、去除字符串中的空格和特殊字符的4个方法详解、格式化字符串的两种方法详解。

2021-12-05  分类:Python教程  浏览:32次


站长在线Python精讲:在Python中格式化字符串的两种方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中格式化字符串的两种方法详解》。本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字符串。

2021-12-04  分类:Python教程  浏览:34次


站长在线Python精讲:在Python中去除字符串中的空格和特殊字符的4个方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中去除字符串中的空格和特殊字符的4个方法详解》。本知识点主要内容有:使用strip()方法用于去掉字符串左、右两侧的空格和特殊字符、使用lstrip()方法用于去掉字符串左侧的空格和特殊字符、使用rstrip()方法用于去掉字符串右侧的空格和特殊字符、使用replace()方法,删除中间的空格和特殊字符。

2021-12-03  分类:Python教程  浏览:36次


站长在线经典Python题:使用Python编程思想解决鸡兔同笼的问题的4种方法

欢迎你来到站长在线的Python题库,鸡兔写完Python教程以后,还是来一个Python的题目吧!想来想去,还是写一个经典的题目为好,作为本栏目的第一个题目。我就想到了比较热门的题目《鸡兔同笼的问题》,本文不是用数学的方法,而是用Python编程的方法解决鸡兔同笼的问题。用的就是《Python中的三大程序结构》: 顺序结构、选择结构和循环结构。解决问题具体的方法就是;顺序语句假设法、选择语句判定法、while循环语句遍历法、for循环语句遍历法。下面我来一一解答:

2021-12-01  分类:Python题库  浏览:47次


站长在线Python精讲:在Python字符串中字母的大小写转换的4大方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python字符串中字母的大小写转换的4大方法详解》。本知识点主要内容有:使用lower()方法,把所有大写字母转换成小写字母、使用upper()方法,把所有小写字母转换成大写字母、使用capitalize()方法,仅首字母转化为大写字母,其余小写字母、使用title()方法,把每个单词的首字母转化为大写字母,其余为小写字母。

2021-12-01  分类:Python教程  浏览:50次


站长在线Python精讲:在Python中检索字符串的5大方法详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中检索字符串的5大方法详解》。本知识点主要内容有:使用count()方法检索指定字符串在另一个字符串中出现的次数、使用find()方法检索是否包含指定的子字符串、使用index()方法检索是否包含指定的子字符串、使用startswith()方法用于检索字符串是否以指定子字符串开头和使用endswith()方法用于检索字符串是否以指定子字符串结尾。

2021-11-30  分类:Python教程  浏览:46次


站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用split()方法分割、使用join()方法合并字符串详解》。本知识点主要内容有:在Python中使用split()方法分割字符串和在Python中使用join()方法合并字符串。

2021-11-29  分类:Python教程  浏览:40次


站长在线Python精讲:在Python中使用索引和切片的方法截取字符串详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用索引和切片的方法截取字符串详解》。本知识点主要内容有:使用索引的方法截取一个字符串和使用切片的方法截取一段字符串。

2021-11-28  分类:Python教程  浏览:59次


站长在线python精讲:在Python中使用len()函数计算字符串的长度详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用len()函数计算字符串的长度详解》。本知识点主要内容有:在Python中使用len()函数计算字符串在UTF-8编码中的长度和使用len()函数计算字符串在GBK编码中的长度。

2021-11-27  分类:Python教程  浏览:61次