Hướng dẫn hashmap and hashset in python - hashmap và hashset trong python

Tôi đoán đây là những gì bạn muốn. Bạn có thể tự xác định chức năng băm, giống như những gì tôi đã làm trong băm hoặc chỉ sử dụng hàm băm tích hợp trong python.

class HashSet:
    CONST = 2 ** 61 - 1

    def __init__(self, size = 10_000):
        self.size = size * 2
        self.contents = [None] * self.size

    def hash(self, x):
        return x % CONST

    def put(self, key):
        idx = self.hash(key) % self.size
        arr = self.contents[idx]
        if arr is None:
            self.contents[idx] = [key]
        elif key not in arr:
            arr.append(key)
        return None

    def get(self, key):
        idx = self.hash(key) % self.size
        arr = self.contents[idx]
        if arr is None or key not in arr:
            return False
        return True


myset = HashSet()
myset.put(123)
myset.put(145)
myset.put(138)
res = myset.get(145)
print(res)
res = myset.get(10)
print(res)


class HashMap:
    def __init__(self, size = 10_000):
        self.size = size * 2
        self.contents = [None] * self.size

    class __Pair:
        def __init__(self, key, value):
            self.key = key
            self.value = value

    def find(self, arr, key):
        for pair in arr:
            if pair.key == key:
                return pair
        return None

    def put(self, key, value):
        idx = hash(key) % self.size
        pair = self.__Pair(key, value)
        arr = self.contents[idx]
        if arr is None:
            self.contents[idx] = [pair,]
            return None

        t = self.find(arr, key)
        if t != None:
            t.value = value
        else:
            arr.append(pair)

    def get(self, key):
        idx = hash(key) % self.size
        arr = self.contents[idx]
        if arr == None:
            raise KeyError(f'{key} is not a valid key')
        t = self.find(arr, key)
        if t == None:
            raise KeyError(f'{key} is not a valid key')
        return t.value


mymap = HashMap()
mymap.put('abc', [123,456])
mymap.put('def', [456,789])
res = mymap.get('abc')
print(res)
res = mymap.get('def')
print(res)
res = mymap.get('defx')
print(res)

Dữ liệu đòi hỏi một số cách mà nó có thể được lưu trữ và truy cập. Một trong những triển khai quan trọng nhất bao gồm các bảng băm. Trong Python, các bảng băm này được triển khai thông qua loại dữ liệu tích hợp, tức là từ điển. Trong bài viết này, bạn sẽ tìm hiểu những gì là bảng băm và băm trong Python và cách bạn có thể thực hiện chúng bằng cách sử dụng từ điển.

Trước khi tiến lên phía trước, chúng ta hãy xem tất cả các chủ đề thảo luận:

  • Bảng băm là gì hoặc một hashmap trong Python là gì?
  • Băm bảng vs Hashmap
  • Tạo từ điển
  • Tạo từ điển lồng nhau
  • Thực hiện các hoạt động trên các bảng băm bằng cách sử dụng từ điển
    • Truy cập các giá trị
    • Cập nhật giá trị
    • Xóa các mục
  • Chuyển đổi từ điển thành một khung dữ liệu

Bảng băm là gì hoặc một hashmap trong Python là gì?

Băm bảng vs Hashmap

Tạo từ điển

Tạo từ điển lồng nhau

Thực hiện các hoạt động trên các bảng băm bằng cách sử dụng từ điển

Truy cập các giá trịCập nhật giá trị

Xóa các mục

Non-Synchronized

Chuyển đổi từ điển thành một khung dữ liệu

Trong khoa học máy tính, bảng băm hoặc hashmap là một loại cấu trúc dữ liệu ánh xạ các khóa cho các cặp giá trị của nó (thực hiện các loại dữ liệu mảng trừu tượng). Về cơ bản, nó sử dụng một hàm tính toán giá trị chỉ mục lần lượt giữ các yếu tố được tìm kiếm, chèn, loại bỏ, v.v ... Điều này giúp dễ dàng và nhanh chóng truy cập dữ liệu. Nói chung, các bảng băm lưu trữ các cặp giá trị khóa và khóa được tạo bằng hàm băm.

Các bảng băm hoặc có bản đồ trong Python được triển khai thông qua kiểu dữ liệu từ điển tích hợp. Các khóa của một từ điển trong Python được tạo ra bởi một hàm băm. Các yếu tố của từ điển không được đặt hàng và chúng có thể được thay đổi.

Một ví dụ về từ điển có thể là bản đồ tên nhân viên và ID nhân viên của họ hoặc tên của sinh viên cùng với ID sinh viên của họ.

Di chuyển về phía trước, hãy để Lôi thấy sự khác biệt giữa bảng băm và Hashmap trong Python.

Bàn băm

  • Bản đồ băm
  • Đồng bộ hóa

Nhanh

Chậm

EXAMPLE:

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

OUTPUT:

Cho phép một phím null và nhiều hơn một giá trị null
dict

Không cho phép các khóa hoặc giá trị null

Tạo từ điển:

EXAMPLE:

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

OUTPUT:

Từ điển có thể được tạo theo hai cách:
dict

Sử dụng niềng răng xoăn ({})

EXAMPLE:

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

OUTPUT:

Cho phép một phím null và nhiều hơn một giá trị null
dict

Không cho phép các khóa hoặc giá trị null

Tạo từ điển:

EXAMPLE:

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'}}}

Từ điển có thể được tạo theo hai cách:

Sử dụng niềng răng xoăn ({})

  • Truy cập các giá trị
  • Cập nhật giá trị
  • Xóa các mục

Chuyển đổi từ điển thành một khung dữ liệu

Trong khoa học máy tính, bảng băm hoặc hashmap là một loại cấu trúc dữ liệu ánh xạ các khóa cho các cặp giá trị của nó (thực hiện các loại dữ liệu mảng trừu tượng). Về cơ bản, nó sử dụng một hàm tính toán giá trị chỉ mục lần lượt giữ các yếu tố được tìm kiếm, chèn, loại bỏ, v.v ... Điều này giúp dễ dàng và nhanh chóng truy cập dữ liệu. Nói chung, các bảng băm lưu trữ các cặp giá trị khóa và khóa được tạo bằng hàm băm.

  • Các bảng băm hoặc có bản đồ trong Python được triển khai thông qua kiểu dữ liệu từ điển tích hợp. Các khóa của một từ điển trong Python được tạo ra bởi một hàm băm. Các yếu tố của từ điển không được đặt hàng và chúng có thể được thay đổi.
  • Một ví dụ về từ điển có thể là bản đồ tên nhân viên và ID nhân viên của họ hoặc tên của sinh viên cùng với ID sinh viên của họ.
  • Di chuyển về phía trước, hãy để Lôi thấy sự khác biệt giữa bảng băm và Hashmap trong Python.

Bàn băm

Bản đồ băm

EXAMPLE:

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

Đồng bộ hóa001′

Nhanh

Chậm

EXAMPLE:

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

OUTPUT:

Cho phép một phím null và nhiều hơn một giá trị null
dict_values([‘001’, ‘002’, ‘003’])
001

Không cho phép các khóa hoặc giá trị null

Tạo từ điển: Từ điển có thể được tạo theo hai cách: Sử dụng niềng răng xoăn ({})
Sử dụng chức năng Dict () & NBSP;Sử dụng niềng răng xoăn:Từ điển trong Python có thể được tạo bằng cách sử dụng niềng răng xoăn như sau:
{‘Dave,:‘ 001, ‘ava, 002Sử dụng chức năng dict ():Python có chức năng tích hợp, Dict () có thể được sử dụng để tạo từ điển trong Python. Ví dụ:
{} DictTrong ví dụ trên, một từ điển trống được tạo vì không có cặp giá trị khóa nào được cung cấp dưới dạng tham số cho hàm dict (). Trong trường hợp bạn muốn thêm giá trị, bạn có thể làm như sau:Tạo từ điển lồng nhau:
Từ điển lồng nhau về cơ bản là từ điển nằm trong các từ điển khác. Ví dụ:Thực hiện các hoạt động trên các bảng băm bằng từ điển:Có một số hoạt động có thể được thực hiện trên có các bảng trong Python thông qua các từ điển như:
Xóa phần tửTruy cập các giá trị:Các giá trị của từ điển có thể được truy cập theo nhiều cách như:
Sử dụng các giá trị chínhSử dụng các chức năngThực hiện vòng lặp cho
Sử dụng các giá trị chính:Các giá trị từ điển có thể được truy cập bằng các giá trị khóa như sau:Đầu ra: 001 001
Sử dụng các chức năng:Có một số hàm tích hợp có thể được sử dụng như get (), khóa (), giá trị (), v.v.Dict_Keys ([‘Dave,‘ Ava, ‘Joe,]) Dict_values ​​([‘ 001, ‘002,‘ 003,])

Tìm hiểu đào tạo Python của chúng tôi ở các thành phố/quốc gia hàng đầu

Ấn Độ

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

OUTPUT:

Hoa Kỳ
Dave
Ava
Joe
All values
001
002
003
All keys and values
Dave : 001
Ava : 002
Joe : 003

Cập nhật giá trị:

Từ điển là các loại dữ liệu có thể thay đổi và do đó, bạn có thể cập nhật chúng khi được yêu cầu. Ví dụ: nếu tôi muốn thay đổi ID của nhân viên có tên Dave từ ‘001, thành‘ 004 và nếu tôi muốn thêm một cặp giá trị khóa khác vào từ điển của mình, tôi có thể làm như sau:

EXAMPLE:

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)

Đầu ra: {‘Dave,:‘ 004, ‘Ava, 002{‘Dave’: ‘004’, ‘Ava’: ‘002’, ‘Joe’: ‘003’, ‘Chris’: ‘005’}

Xóa các mục khỏi từ điển:

Có một số hàm cho phép bạn xóa các mục khỏi từ điển như del (), pop (), popitem (), Clear (), v.v.

EXAMPLE:

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)

Đầu ra: & nbsp; {‘joe,: 003 003}{‘Joe’: ‘003’}

Đầu ra trên cho thấy tất cả các yếu tố ngoại trừ ‘Joe: 003 đã bị xóa khỏi từ điển bằng cách sử dụng các chức năng khác nhau.

Chuyển đổi từ điển thành DataFrame:

Như bạn đã thấy trước đây, tôi đã tạo ra một từ điển lồng nhau có chứa tên nhân viên và các chi tiết của họ được ánh xạ cho nó. Bây giờ để làm cho một bảng rõ ràng trong số đó, tôi sẽ sử dụng thư viện Pandas để đặt mọi thứ như một khung dữ liệu.

EXAMPLE:

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

OUTPUT:

Hướng dẫn hashmap and hashset in python - hashmap và hashset trong python

Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này. Điều này đưa chúng ta đến cuối bài viết của chúng tôi trên các bảng băm và haspmaps trong Python. & Nbsp; đảm bảo bạn thực hành càng nhiều càng tốt và hoàn nguyên trải nghiệm của bạn. & Nbsp; & nbsp;Make sure you practice as much as possible and revert your experience.  

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận của bảng băm này và băm trong blog Python và chúng tôi sẽ liên hệ lại với bạn càng sớm càng tốt hoặc tham gia khóa học Python Master.

Để có được kiến ​​thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký cho Live & NBSP; Python Training Huấn luyện & NBSP; với hỗ trợ 24/7 và truy cập trọn đời. & NBSP;Python online training with 24/7 support and lifetime access. 

Sự khác biệt giữa Hashmap và Hashset trong Python là gì?

Hashmap lưu trữ các phần tử dưới dạng cặp giá trị khóa, tức là mỗi phần tử có khóa tương ứng được yêu cầu để truy xuất trong quá trình lặp. Hashset chỉ lưu trữ các đối tượng không có cặp giá trị khóa nào được duy trì.

Có Hashmap trong Python?

Hashmaps hoặc các bảng băm trong Python được triển khai thông qua kiểu dữ liệu tích hợp.Các khóa của kiểu dữ liệu tích hợp được tạo ra với sự trợ giúp của hàm băm.. The keys of the built-in data type are generated with the help of a hashing function.

Có một băm trong Python?

Hashset được sử dụng để lưu trữ các giá trị bằng bảng băm.Trong hướng dẫn này, chúng tôi sẽ đề cập đến Hashset trong Python.Chúng tôi cũng sẽ tìm hiểu về cách chúng tôi có thể thiết kế Hashset trong Python.Cấu trúc dữ liệu Hashset có thể được tạo mà không cần sử dụng bất kỳ thư viện bảng Hash tích hợp nào.. In this tutorial, we will cover HashSet in Python. We will also learn about how we can design HashSet in Python. HashSet data structure can be created without using any built-in hash table libraries.

Hashmap trong Python là gì?

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 toán một chỉ mục bằng một khóa thành một mảng xô hoặc khe.Giá trị của nó được ánh xạ tới xô với chỉ mục tương ứng.Chìa khóa là duy nhất và bất biến.indexed data structures. A hash map makes use of a hash function to compute an index with a key into an array of buckets or slots. Its value is mapped to the bucket with the corresponding index. The key is unique and immutable.