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中的哈希表和Haspmaps的文章的结尾。 确保尽可能多地练习并恢复经验。
- 点赞
- 收藏
- 关注作者
评论(0)