Hashmap hoặc bảng Hash trong cấu trúc dữ liệu ánh xạ các khóa tới các cặp giá trị của nó và sử dụng hàm tính toán bất kỳ giá trị chỉ mục nào chứa các phần tử sẽ được chèn, tìm kiếm hoặc xóa. Điều này giúp truy cập dữ liệu dễ dàng và nhanh hơn. Các bảng băm thường lưu trữ các cặp khóa-giá trị và sử dụng hàm băm để tạo khóa
Trong bài viết này, bạn sẽ tìm hiểu Bảng băm và Bản đồ băm là gì và cách chúng được triển khai trong Python
Tìm hiểu khoa học dữ liệu để đạt được lợi thế so với đối thủ cạnh tranh của bạn
Mục lục
- Bảng Hash hoặc Hashmap Python là gì?
- Hashmap trong Python
- Kiểm tra Hoa Kỳ của chúng tôi - Chương trình Khoa học Dữ liệu
- Thực hiện các thao tác trên bảng Hash bằng Từ điển
- Truy cập giá trị
- Sử dụng các giá trị chính
- Sử dụng chức năng
- Thực hiện vòng lặp for
- Cập nhật giá trị
- Xóa các mục khỏi từ điển
- Phần kết luận
- Bản đồ băm, Python và bảng băm, Python là gì?
- Sự khác biệt giữa hashmap và bảng băm Python là gì?
- Bản đồ có phải là Hashtable không?
Bảng Hash hoặc Hashmap Python là gì?
Bảng băm hoặc bản đồ băm Python là một cấu trúc dữ liệu được lập chỉ mục. Nó sử dụng các hàm băm để tính toán một chỉ mục bằng cách sử dụng một khóa vào một mảng các vị trí hoặc nhóm. Bạn có thể ánh xạ giá trị của nó tới một nhóm bằng cách sử dụng chỉ mục tương ứng và khóa là bất biến và duy nhất.
Hashmap tương tự như một tủ ngăn kéo được dán nhãn với những thứ chúng lưu trữ. Chẳng hạn, hashmap có thể lưu trữ thông tin người dùng như họ và tên, v.v. , trong xô.
Hàm băm là không thể thiếu để thực hiện hashmap. Nó sử dụng khóa và dịch nó thành chỉ mục của nhóm trong danh sách nhóm. Băm lý tưởng tạo ra một chỉ mục riêng cho mỗi khóa. Tuy nhiên, hãy nhớ rằng va chạm có thể xảy ra. Khi băm tạo ra một chỉ mục đã tồn tại, có thể dễ dàng sử dụng một nhóm cho nhiều giá trị bằng cách băm lại hoặc nối thêm danh sách. Trong Python, một ví dụ về bản đồ băm là từ điển.
Chúng ta hãy xem xét chi tiết việc triển khai hashmap để tìm hiểu cách tùy chỉnh và xây dựng cấu trúc dữ liệu để tối ưu hóa tìm kiếm
Hashmap trong Python
Hashmap bao gồm các chức năng sau
- set_val[khóa, giá trị]. Hàm này được sử dụng để chèn một cặp khóa-giá trị vào bản đồ băm. Nếu đã có một giá trị hiện có trong bản đồ băm, bạn phải cập nhật giá trị.
- get_val[key]. Hàm này trả về giá trị cho khóa đã chỉ định được ánh xạ hoặc “Không tìm thấy bản ghi” nếu ánh xạ này không có ánh xạ cho khóa.
- delete_val[key]. Xóa ánh xạ cho khóa cụ thể nếu hashmap có ánh xạ cho khóa.
Thực hiện. -
lớp Hashtable
# Tạo danh sách nhóm trống có kích thước nhất định
def __init__[bản thân, kích thước]
chính mình. kích thước = kích thước
chính mình. hash_table = tự. create_buckets[]
def create_buckets[tự]
return [[] cho _ trong phạm vi[self. kích thước]]
# Chèn giá trị vào bản đồ băm
def get_value[bản thân, khóa, giá trị]
# Lấy chỉ mục từ khóa
# sử dụng hàm băm
hashed_key = hash[key] % self. kích thước
# Lấy nhóm tương ứng với chỉ mục
bucket = self. hash_table[hashed_key]
found_key = False
đối với chỉ mục, hãy ghi ở dạng liệt kê [nhóm].
record_key, record_val = bản ghi
# kiểm tra xem nhóm có cùng khóa với
# khóa cần chèn
if record_key == key.
found_key = True
nghỉ
# Nếu nhóm có khóa giống với khóa được chèn,
# Cập nhật giá trị khóa
# Nếu không thì hãy thêm cặp khóa-giá trị mới vào nhóm
if found_key.
bucket[index] = [key, val]
khác.
nhóm. nối thêm[[key, val]]
# Trả về giá trị tìm kiếm với khóa cụ thể
def get_val[self, key].
# Nhận chỉ mục từ khóa bằng cách sử dụng
# hàm băm
hashed_key = hash[key] % self. kích thước
# Lấy nhóm tương ứng với chỉ mục
bucket = self. hash_table[hashed_key]
found_key = False
đối với chỉ mục, hãy ghi ở dạng liệt kê [nhóm].
record_key, record_val = bản ghi
# kiểm tra xem nhóm có cùng khóa với
# khóa đang được tìm kiếm
if record_key == key.
found_key = True
nghỉ
# Nếu nhóm có cùng khóa với khóa đang tìm kiếm,
# Trả về giá trị tìm được
# Nếu không thì cho biết không tìm thấy bản ghi nào
if found_key.
return record_val
khác.
return "Không tìm thấy bản ghi"
# Xóa một giá trị bằng khóa cụ thể
def delete_val[bản thân, khóa]
# Nhận chỉ mục từ khóa bằng cách sử dụng
# hàm băm
hashed_key = hash[key] % self. kích thước
# Lấy nhóm tương ứng với chỉ mục
bucket = self. hash_table[hashed_key]
found_key = False
đối với chỉ mục, hãy ghi ở dạng liệt kê [nhóm].
record_key, record_val = bản ghi
# kiểm tra xem nhóm có cùng khóa với
# khóa cần xóa
if record_key == key.
found_key = True
nghỉ
if found_key.
nhóm. pop[chỉ mục]
trả lại
# Để in các mục của hash map
def __str__[bản thân]
return “”. tự tham gia [str [mục] cho mục. hash_table]
hash_table = HashTable[50]
# chèn một số giá trị
hash_table. set_val[upGrad@example. com’, ‘một số giá trị’]
in [bảng băm]
in[]
hash_table. set_val[‘portal@example. com’, ‘một số giá trị khác’]
in [bảng băm]
in[]
# tìm kiếm/truy cập bản ghi bằng khóa
in [bảng băm. get_val[‘portal@example. com’]]
in[]
# xóa hoặc loại bỏ một giá trị
hash_table. delete_val[‘portal@example. com’]
in [bảng băm]
đầu ra. -
[][][][][][][][][][][][][][][][][][][][][][] [upGrad@example. com', 'một số giá trị'] ][][][][][][][][][][][][][][][][][][][][][][
[][][][][][][][][][][][][][][][][][][][][][] [upGrad@example. com’, ‘some value’] ][][][][][][[‘portal@example. com', 'một số giá trị khác']][][][][][][][][][][][][][][][][][][][][][]
Một số giá trị khác
[][][][][][][][][][][][][][][][][][][][][][] [upGrad@example. com', 'một số giá trị'] ][][][][][][][][][][][][][][][][][][][][][][
Kiểm tra Hoa Kỳ của chúng tôi - Chương trình Khoa học Dữ liệu
Chương trình chứng chỉ chuyên nghiệp về khoa học dữ liệu và phân tích kinh doanhThạc sĩ khoa học về khoa học dữ liệuThạc sĩ khoa học về khoa học dữ liệuChương trình chứng chỉ nâng cao về khoa học dữ liệuChương trình PG cấp cao về khoa học dữ liệuLập trình Python BootcampChương trình chứng chỉ chuyên nghiệp về khoa học dữ liệu dành cho việc ra quyết định kinh doanhChương trình nâng cao về khoa học dữ liệu
Thực hiện các thao tác trên bảng Hash bằng Từ điển
Có rất nhiều thao tác có thể được thực hiện bằng Python trên bảng băm thông qua từ điển. Chúng như sau. -
- Truy cập giá trị
- Cập nhật giá trị
- Xóa phần tử
Truy cập giá trị
Bạn có thể dễ dàng truy cập các giá trị của từ điển theo các cách sau. -
- Sử dụng các giá trị chính
- Sử dụng chức năng
- Thực hiện vòng lặp for
Sử dụng các giá trị chính
Bạn có thể truy cập các giá trị từ điển bằng cách sử dụng các giá trị chính như bên dưới. -
my_dict={'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. ‘003’}my_dict[‘Anna’]
đầu ra. ‘002′
Sử dụng chức năng
Có rất nhiều hàm tích hợp sẵn như get[], keys[], values[], v.v.
my_dict={'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. ‘003’}in [my_dict. phím[]]
in [my_dict. giá trị[]]
in [my_dict. lấy['Elsa']]
đầu ra. -
dict_keys[[‘Elsa’, ‘Anna’, ‘Olaf’]]
dict_values[[‘001’, ‘002’, ‘003’]]
001
Thực hiện vòng lặp for
Vòng lặp cung cấp cho bạn quyền truy cập vào các cặp khóa-giá trị của từ điển bằng cách lặp lại chúng. Ví dụ
my_dict={'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. ‘003’}in ["Tất cả các phím"]
cho x trong my_dict
print[x] #prints the keys
in ["Tất cả các giá trị"]
cho x trong my_dict. giá trị[]
print[x] #print giá trị
print[“Tất cả khóa và giá trị”]
cho x, y trong my_dict. mặt hàng[]
in[x, “. ” , y] #prints khóa và giá trị
đầu ra
Tất cả các phím
Elsa
anna
Olaf
Tất cả giá trị
001
002
003
Tất cả các khóa và giá trị
Elsa. 001
anna. 002
Olaf. 003
Cập nhật giá trị
Từ điển là loại dữ liệu có thể thay đổi có thể được cập nhật khi cần thiết. Bạn có thể làm như sau. -
my_dict[‘Olaf’] = ‘004’ #Cập nhật giá trị của Dave
my_dict[‘Kristoff’] = ‘005’ #thêm một cặp khóa-giá trị
in [my_dict]
Đầu ra . {'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. '004', 'Kristoff'. ‘005’}
Xóa các mục khỏi từ điển
Bạn có thể xóa các mục khỏi từ điển bằng các chức năng như del[], pop[], popitem[], clear[], v.v. Ví dụ.
my_dict={'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. ‘003’}del my_dict[‘Elsa’] #xóa cặp khóa-giá trị của ‘Elsa’
my_dict. pop['Anna'] #xóa giá trị của 'Anna'
my_dict. popitem[] #remove mục được chèn cuối cùng
in [my_dict]
Đầu ra . {'Olaf'. ‘003’}
Phần kết luận
Chúng ta có thể dễ dàng kết luận rằng bản đồ băm và bảng băm Python là không thể thiếu để truy cập dữ liệu liên quan dễ dàng và nhanh hơn. Nó là một công cụ có giá trị cho các chuyên gia khoa học dữ liệu như nhà khoa học dữ liệu và nhà phân tích dữ liệu. Nếu bạn muốn tìm hiểu thêm về lĩnh vực Khoa học dữ liệu, upGrad có Chương trình chứng chỉ chuyên nghiệp về Khoa học dữ liệu dành cho việc ra quyết định kinh doanh tốt nhất.
Kiểm tra Chương trình chứng chỉ nâng cao trong DevOps của upGrad
Bản đồ băm, Python và bảng băm, Python là gì?
Hashtable giúp lưu trữ các cặp khóa-giá trị trong đó khóa được tạo bằng hàm băm. Việc triển khai hashmap hoặc hashtable trong Python được thực hiện với các từ điển tích hợp sẵn
Sự khác biệt giữa hashmap và bảng băm Python là gì?
Hashmap không được đồng bộ hóa, nhưng Hashtable được đồng bộ hóa. Điều này có nghĩa là các bảng Hash an toàn theo luồng và có thể được chia sẻ giữa nhiều luồng, nhưng HashMap cần được đồng bộ hóa phù hợp trước khi được chia sẻ
Bản đồ có phải là Hashtable không?
Bảng băm Python còn được gọi là bản đồ băm, là một cấu trúc dữ liệu ánh xạ các khóa tới các giá trị. Nó sử dụng kỹ thuật băm