一文详解Python中哈希表的使用

一文详解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技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python 调用API接口 获取和解析 Json数据

    在Python中,可以使用requests模块调用API接口获取和解析JSON数据。以下是Python调用API接口获取和解析JSON数据的详细攻略: 调用API接口 要调用API接口,可以使用requests.get()方法。以下是调用API接口的示例: import requests response = requests.get(‘https://js…

    python 2023年5月14日
    00
  • Python re.sub 反向引用的实现

    Python中的re.sub函数可以用于对字符串内容进行替换操作,而在替换过程中,反向引用是其一个非常有用的功能。本文将详细讲解Python re.sub反向引用的实现攻略。 什么是反向引用? 反向引用指的是在正则表达式的替换操作中,可以使用捕获组的内容作为替换的一部分,通过在替换字符串中添加类似’\g<组号>’的格式,就可以实现对捕获组内容的引…

    python 2023年6月3日
    00
  • Python自然语言处理 NLTK 库用法入门教程【经典】

    以下是Python自然语言处理NLTK库用法入门教程的完整攻略: 步骤1:安装NLTK库 在使用NLTK库之前,需要安装NLTK库。以下是一个示例代码: pip install nltk 在这个例子中,我们使用pip命令安装了NLTK库。 步骤2:导入NLTK库 在使用NLTK库之前,需要导入NLTK库。以下是一个示例代码: import nltk 在这个例…

    python 2023年5月14日
    00
  • python算法演练_One Rule 算法(详解)

    Python算法演练_OneRule算法(详解) OneRule算法是一种基于规则的分类算法,它可以用于处理二分类问题。在本文中,我们将详细讲解OneRule算法的实现过程,并提供两个示例说明。 算法原理 OneRule算法的基本思想是:对于每个特征,找到一个最佳的规则,使得该规则可以最好地区分两个类别。具体来说,对于每个特征,我们将其所有可能的取值进行组合…

    python 2023年5月14日
    00
  • Python海龟turtle基础知识大全以及画图集合实例

    Python海龟turtle基础知识大全以及画图集合实例 一、Python海龟turtle基础知识 1.1 简介 Python中的turtle模块是一种在Python中绘制图形的代码库,可以用于教学和艺术创作。 1.2 turtle基本命令 forward(distance):向前移动指定距离 backward(distance):向后移动指定距离 left…

    python 2023年5月14日
    00
  • 使用python实现strcmp函数功能示例

    下面就是使用python实现strcmp函数的完整攻略: 1. strcmp函数的介绍 strcmp函数是一种用于比较两个字符串的函数,其功能是比较两个字符串的大小。这个函数用于定位两个字符串中第一个不同点的位置。在比较过程中,一旦存在不同的点,则返回两个点的ASCII码之差。否则,如果两个字符串长度相等,返回0,如过长度不等,则返回差值。 2. 基本思路 …

    python 2023年6月5日
    00
  • python标准库模块之json库的基础用法

    当我们需要在不同的技术栈之间交换数据时,我们需要一种简便易行的方式,以确保数据格式的一致性。在Python中,JSON(JavaScript Object Notation)是一种流行的格式,它被广泛用于数据交换,因为它易于阅读和理解,并且它的轻量性可以轻松地处理大量数据。Python中有一个标准库模块json库专门用于JSON的编码和解码。 基本用法 js…

    python 2023年6月3日
    00
  • 不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决

    针对“不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决”这一问题,我们可以采用以下方案: 问题描述 在 Python matplotlib 库使用过程中,若出现不同版本的 matplotlib 库在使用 pyplot.draw() 函数时画布未被成功绘制或崩溃等异常现象,需要对此进行解决。 解决方案 针对不同版本…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部