一文详解Python中哈希表的使用
什么是哈希表
哈希表也称为散列表,是一种用于存储键值对的数据结构。在哈希表中,每个键都与一个特定的值相关联。哈希表使用哈希函数将键映射到存储桶中,以便快速访问键对应的值。
Python中的哈希表实现在内部使用了散列表。Python的“字典”数据类型就是基于哈希表实现的,也称为dict。字典的键必须是不可变类型,例如数字、字符串和元组。更改键(例如在字典中使用列表作为键)将导致 TypeError 错误。
如何使用哈希表
创建哈希表
在Python中,可以使用花括号或dict()构造函数创建一个字典,这个字典就是一个哈希表。
# 创建一个空的字典
my_dict = {}
print(my_dict)
# 创建一个带有键值对的字典
my_dict = {'name': 'Lily', 'age': 18, 'city': 'Beijing'}
print(my_dict)
# 使用dict()构造函数创建字典
my_dict = dict(name='Lucy', age=20, city='Shanghai')
print(my_dict)
输出:
{}
{'name': 'Lily', 'age': 18, 'city': 'Beijing'}
{'name': 'Lucy', 'age': 20, 'city': 'Shanghai'}
访问哈希表
可以使用字典的键访问对应的值。如果字典中不存在指定的键,则会引发 KeyError 异常。
my_dict = {'name': 'Lily', 'age': 18, 'city': 'Beijing'}
# 访问字典中的键值
print(my_dict['name'])
print(my_dict['age'])
print(my_dict['city'])
# 访问不存在的键
print(my_dict['gender'])
输出:
Lily
18
Beijing
KeyError: 'gender'
可以使用 get() 方法来访问字典中的键值,如果字典中不存在指定的键,则返回默认值 None 或传入的值。
my_dict = {'name': 'Lily', 'age': 18, 'city': 'Beijing'}
# 使用get()方法访问字典中的键值
print(my_dict.get('name'))
print(my_dict.get('age'))
print(my_dict.get('city'))
print(my_dict.get('gender')) # None
# 使用get()方法访问不存在的键
print(my_dict.get('gender', 'unknown'))
输出:
Lily
18
Beijing
None
unknown
修改哈希表
可以通过键访问到字典的值,并进行修改。
my_dict = {'name': 'Lily', 'age': 18, 'city': 'Beijing'}
# 修改字典中的键值
my_dict['age'] = 19
print(my_dict)
# 添加新的键值对
my_dict['gender'] = 'female'
print(my_dict)
输出:
{'name': 'Lily', 'age': 19, 'city': 'Beijing'}
{'name': 'Lily', 'age': 19, 'city': 'Beijing', 'gender': 'female'}
删除哈希表
可以使用 del 关键字删除字典中的键值对。
my_dict = {'name': 'Lily', 'age': 18, 'city': 'Beijing'}
# 删除字典中的键值对
del my_dict['age']
print(my_dict)
# 清空整个字典
my_dict.clear()
print(my_dict)
输出:
{'name': 'Lily', 'city': 'Beijing'}
{}
总结
哈希表是一种强大的数据结构,在Python中常用的字典类型就是基于哈希表实现的。我们可以使用花括号或dict()构造函数创建一个字典,使用键访问对应的值,并进行修改和删除。
示例一:使用哈希表存储学生信息
# 创建一个学生字典
stu_dict = {'ID001': {'name': 'Lily', 'age': 18, 'city': 'Beijing'},
'ID002': {'name': 'Lucy', 'age': 20, 'city': 'Shanghai'},
'ID003': {'name': 'Tom', 'age': 19, 'city': 'Guangzhou'}}
print(stu_dict)
# 修改学生信息
stu_dict['ID001']['age'] = 19
print(stu_dict)
# 删除学生信息
del stu_dict['ID003']
print(stu_dict)
输出:
{'ID001': {'name': 'Lily', 'age': 18, 'city': 'Beijing'},
'ID002': {'name': 'Lucy', 'age': 20, 'city': 'Shanghai'},
'ID003': {'name': 'Tom', 'age': 19, 'city': 'Guangzhou'}}
{'ID001': {'name': 'Lily', 'age': 19, 'city': 'Beijing'},
'ID002': {'name': 'Lucy', 'age': 20, 'city': 'Shanghai'},
'ID003': {'name': 'Tom', 'age': 19, 'city': 'Guangzhou'}}
{'ID001': {'name': 'Lily', 'age': 19, 'city': 'Beijing'},
'ID002': {'name': 'Lucy', 'age': 20, 'city': 'Shanghai'}}
示例二:使用哈希表存储公司货物信息
# 创建一个货物字典
goods_dict = {'ID001': {'name': 'computer', 'price': 6000, 'quantity': 10},
'ID002': {'name': 'phone', 'price': 2000, 'quantity': 20},
'ID003': {'name': 'watch', 'price': 8000, 'quantity': 5}}
print(goods_dict)
# 修改货物信息
goods_dict['ID002']['quantity'] = 30
print(goods_dict)
# 添加新的货物信息
goods_dict['ID004'] = {'name': 'book', 'price': 50, 'quantity': 100}
print(goods_dict)
输出:
{'ID001': {'name': 'computer', 'price': 6000, 'quantity': 10},
'ID002': {'name': 'phone', 'price': 2000, 'quantity': 20},
'ID003': {'name': 'watch', 'price': 8000, 'quantity': 5}}
{'ID001': {'name': 'computer', 'price': 6000, 'quantity': 10},
'ID002': {'name': 'phone', 'price': 2000, 'quantity': 30},
'ID003': {'name': 'watch', 'price': 8000, 'quantity': 5}}
{'ID001': {'name': 'computer', 'price': 6000, 'quantity': 10},
'ID002': {'name': 'phone', 'price': 2000, 'quantity': 30},
'ID003': {'name': 'watch', 'price': 8000, 'quantity': 5},
'ID004': {'name': 'book', 'price': 50, 'quantity': 100}}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文详解Python中哈希表的使用 - Python技术站