Có hashmap trong python không?

Dữ liệu yêu cầu nhiều cách để được truy cập hoặc lưu trữ. Bảng băm và Bản đồ băm tình cờ là cấu trúc dữ liệu tốt nhất để triển khai điều này trong Python thông qua kiểu dữ liệu tích hợp được gọi là từ điển.  

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={'Elsa'. '001' , 'Anna'. '002' , 'Olaf'. ‘003’}

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

Chúng ta có thể sử dụng Hashmap trong Python không?

Bản đồ băm là cấu trúc dữ liệu được lập chỉ mục. Bản đồ băm sử dụng hàm băm để tính chỉ mục có khóa vào một mảng các nhóm hoặc vị trí . Giá trị của nó được ánh xạ tới vùng chứa với chỉ mục tương ứng.

Hashmap được gọi bằng Python là gì?

Trong Python, từ điển [hay gọi tắt là “dicts”] là một cấu trúc dữ liệu trung tâm. Dicts lưu trữ một số đối tượng tùy ý, mỗi đối tượng được xác định bằng một khóa từ điển duy nhất. Từ điển thường còn được gọi là bản đồ, hàm băm, bảng tra cứu hoặc mảng kết hợp .

Python có đặt bản đồ băm không?

Vì vậy, về cơ bản một tập hợp sử dụng bảng băm làm cấu trúc dữ liệu cơ bản . Điều này giải thích việc kiểm tra tư cách thành viên O[1], vì trung bình tra cứu một mục trong hashtable là thao tác O[1].

Có bảng băm trong Python không?

Bảng Băm trong Python sử dụng mảng làm phương tiện lưu trữ và sử dụng phương thức băm để tạo chỉ mục nơi một phần tử sẽ được tìm kiếm từ đó hoặc cần được chèn vào . Nói cách khác, Bảng băm trong Python là cấu trúc dữ liệu lưu trữ dữ liệu bằng cách sử dụng một cặp giá trị và khóa.

Chủ Đề