Python中的哈希表和哈希图:它们是什么以及如何实现?

举报
Yuchuan 发表于 2021/02/25 16:36:09 2021/02/25
【摘要】 Python中的哈希表和哈希图的学习。

数据需要多种存储和访问数据的方式。最重要的实现之一包括哈希表。在Python中,这些哈希表是通过内置数据类型dictionary实现的。在本文中,您将学习什么是Python中的哈希表和哈希图,以及如何使用字典来实现它们。

在继续之前,让我们看一下所有讨论的主题:

什么是Python中的哈希表或哈希图?

在计算机科学中,哈希表或哈希图是一种将键映射到其值对(实现抽象数组数据类型)的数据结构。它基本上利用了计算索引值的函数,该索引值又包含要搜索,插入,删除的元素等。这使得访问数据变得容易且快速。通常,哈希表存储键值对,并且使用哈希函数生成键。

 

哈希表或具有Python的映射是通过内置的字典数据类型实现的。Python中字典的键由哈希函数生成。字典中的元素没有顺序,可以更改。

词典的示例可以是员工姓名及其员工ID或学生姓名及其学生ID的映射。

继续前进,让我们看看Python中的哈希表和哈希图之间的区别。

哈希表与哈希图:哈希表与Python中的哈希图之间的区别

Hash Table Hashmap

Synchronized

Non-Synchronized

Fast

Slow

Allows one null key and more than one null values

Does not allows null keys or values

 

创建字典:

字典可以通过两种方式创建:

  • 使用花括号({})
  • 使用dict() 函数

使用花括号:

可以使用花括号在Python中创建字典,如下所示:

例子:

my_dict={'Dave' : '001' , 'Ava': '002' , 'Joe': '003'}
print(my_dict)
type(my_dict)

输出:

{'Dave':'001','Ava':'002','Joe':'003'}
dict

使用dict()函数:

Python具有内置函数dict(),可用于在Python中创建字典。例如:

例子:

new_dict=dict()
print(new_dict)
type(new_dict)

输出:

{}

字典

在上面的示例中,由于没有将键值对作为参数提供给dict()函数,因此创建了一个空字典。如果要添加值,可以执行以下操作:

例子:

new_dict=dict(Dave = '001' , Ava= '002' , Joe= '003')
print(new_dict)
type(new_dict)

输出:

{'Dave':'001','Ava':'002','Joe':'003'}
dict

创建嵌套词典:

嵌套字典基本上是位于其他字典中的字典。例如:

例子:

emp_details = {'Employee': {'Dave': {'ID': '001',
                                     'Salary': 2000,
                                     'Designation':'Python Developer'},
                            'Ava': {'ID':'002',
                                    'Salary': 2300,
                                    'Designation': 'Java Developer'},
                            'Joe': {'ID': '003',
                                    'Salary': 1843,
                                    'Designation': 'Hadoop Developer'}}}

使用字典对哈希表执行操作:

通过字典,可以对Python的has表执行许多操作,例如:

  • 访问值
  • 更新值
  • 删除元素

访问值:

字典的值可以通过多种方式访问​​,例如:

使用键值:

可以使用以下键值来访问字典值:

例子:

my_dict={'Dave' : '001' , 'Ava': '002' , 'Joe': '003'}
my_dict['Dave']

输出:' 001'

使用功能:

有许多内置函数可以使用,例如get(),keys(),values()等。

例子:

my_dict={'Dave' : '001' , 'Ava': '002' , 'Joe': '003'}
print(my_dict.keys())
print(my_dict.values())
print(my_dict.get('Dave'))

输出:

dict_keys(['Dave','Ava','Joe'])
dict_values(['001','002','003'])
001

实现for循环:

通过for循环,您可以通过迭代字典的键/值对轻松地对其进行访问。例如:

my_dict={'Dave' : '001' , 'Ava': '002' , 'Joe': '003'}
print("All keys")
for x in my_dict:
    print(x)       #prints the keys
print("All values")
for x in my_dict.values():
    print(x)       #prints values
print("All keys and values")
for x,y in my_dict.items():
    print(x, ":" , y)       #prints keys and values

输出:

所有按键
戴夫·
阿瓦

的所有值
001
002
003
所有键和值
戴夫:001
原产地:002
乔:003

更新值:

词典是可变的数据类型,因此,您可以根据需要更新它们。例如,如果我想将名为Dave的员工的ID从'001'更改为'004',并且如果我想在字典中添加另一个键值对,则可以执行以下操作:

例子:

my_dict={'Dave' : '001' , 'Ava': '002' , 'Joe': '003'}
my_dict['Dave'] = '004'   #Updating the value of Dave
my_dict['Chris'] = '005'  #adding a key-value pair
print(my_dict)

输出:

{'Dave':'004','Ava':'002','Joe':'003','Chris':'005'}

从字典中删除项目:

有许多功能可让您从字典中删除项目,例如del(),pop(),popitem(),clear()等。例如:

例子:

my_dict={'Dave': '004', 'Ava': '002', 'Joe': '003', 'Chris': '005'}
del my_dict['Dave']  #removes key-value pair of 'Dave'
my_dict.pop('Ava')   #removes the value of 'Ava'
my_dict.popitem()    #removes the last inserted item
print(my_dict)

输出:

{'Joe':'003'}

上面的输出显示使用各种功能从字典中删除了除“ Joe:003”以外的所有元素。

将Dictionary转换为数据框:

如您先前所见,我创建了一个嵌套的字典,其中包含员工姓名及其映射的详细信息。现在,为了使表更清晰,我将使用pandas库,以便将所有内容都放置为数据框。

例子:

import pandas as pd
emp_details = {'Employee': {'Dave': {'ID': '001',
                                     'Salary': 2000,
                                     'Designation':'Python Developer'},
                            'Ava': {'ID':'002',
                                    'Salary': 2300,
                                    'Designation': 'Java Developer'},
                            'Joe': {'ID': '003',
                                    'Salary': 1843,
                                    'Designation': 'Hadoop Developer'}}}
df=pd.DataFrame(emp_details['Employee'])
print(df)

输出:

Python-Edureka中的dataframe-Hash表和hashmap

 

我希望您对本教程中与您共享的所有内容一清二楚。这使我们结束了关于Python中的哈希表和Haspmaps的文章的结尾。 确保尽可能多地练习并恢复经验。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。