Python四大金刚之字典详解
Python四大金刚之一:字典(Dictionary),可以将其看作是由键值对组成的集合,是 Python 内置的一种数据结构,用于存储无序、可变、有键、不重复的数据集合。在 Python3 中,字典的实现是基于哈希表的。该文章将详细讲解字典的基本操作及应用场景。
创建字典
创建字典的方式有多种,其中较为常见的方式如下:
直接创建
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
构造函数创建
dict2 = dict(name='Tom', age=18, gender='male')
通过 zip 创建
keys = ['name', 'age', 'gender']
values = ['Tom', 18, 'male']
dict3 = dict(zip(keys, values))
访问字典
获取字典中的值
获取字典中的值,可以通过键(key)进行访问。如果字典中不存在该键,则会抛出 KeyError 的异常。
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1['name']) # 输出 Tom
print(dict1['phone']) # 抛出 KeyError 饮食
获取字典中的键
获取字典中的键,可以使用 keys() 方法。
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1.keys()) # 输出 ['name', 'age', 'gender']
获取字典中的值
获取字典中的值,可以使用 values() 方法。
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1.values()) # 输出 ['Tom', 18, 'male']
更新字典
添加新的键值对
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
dict1['phone'] = '12345678900'
print(dict1) # 输出 {'name': 'Tom', 'age': 18, 'gender': 'male', 'phone': '12345678900'}
修改已有的键值对
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
dict1['name'] = 'Jerry'
print(dict1) # 输出 {'name': 'Jerry', 'age': 18, 'gender': 'male'}
删除字典
可以通过 del 关键字,删除字典中的指定键值对或整个字典。
删除指定键值对
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
del dict1['name']
print(dict1) # 输出 {'age': 18, 'gender': 'male'}
删除整个字典
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
del dict1
print(dict1) # 抛出 NameError 异常
示例1:访问字典中不存在的键
dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}
print(dict1['phone']) # 抛出 KeyError
解释:
在访问字典中不存在的键时,Python 会抛出 KeyError 异常,因为字典中不存在该键。
示例2:使用字典统计一段英文文本中各字符出现次数
text = 'Python is an interpreted, high-level and general-purpose programming language.'
char_dict = {}
for char in text:
if char.isalpha(): # 判断是否是字母
if char.lower() in char_dict: # 如果该字母已经在字典中,则次数加 1
char_dict[char.lower()] += 1
else: # 否则,将该字母添加到字典中
char_dict[char.lower()] = 1
print(char_dict)
解释:
该示例使用字典统计了一段英文文本中各字母出现的次数。首先遍历文本中的每一个字符,如果该字符是字母,则将其转换为小写字母,并判断该字母是否已经在字典中出现,如果出现过,则将其出现次数加 1,否则将其添加到字典中,并将出现次数初始化为 1。最终输出统计结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python四大金刚之字典详解 - Python技术站