Danh sách băm Python

Trong động lực kinh doanh hiện đại ngày nay, có một ứng dụng cho mọi nhu cầu mà bạn có thể tưởng tượng. Có thể là để theo dõi các buổi bơi hàng tuần của bạn hoặc để tìm những nhà hàng tốt nhất trong thị trấn. Python là một ngôn ngữ mà nhiều ứng dụng trong số này được xây dựng vì nó tự hào có nhiều tính năng mà nó cung cấp. Bài viết này sẽ mở ra một khái niệm như vậy đó là Hash In Python.  

Các gợi ý sau đây sẽ được đề cập trong bài viết này,

Vì vậy, chúng ta hãy bắt đầu sau đó,

Python là một trong những ngôn ngữ lập trình cấp cao phổ biến nhất hiện nay trong ngành. Được xây dựng trên nền tảng C, Python là một ngôn ngữ lập trình hướng đối tượng không chỉ rất linh hoạt mà còn có một số lượng lớn các tính năng cho phép các nhà phát triển tạo ra các ứng dụng cấp cao. Python là ngôn ngữ lập trình đi kèm với thư viện tích hợp có hàng trăm mô-đun và chức năng. Một trong số đó là mô-đun băm. Trong bài viết này, chúng ta sẽ thảo luận thêm về mô-đun băm, các tính năng của nó và cách bạn có thể sử dụng mô-đun này trong lập trình hàng ngày của mình

Trước khi chúng ta đi vào chi tiết của bài viết Hash In Python này, chúng ta hãy nhanh chóng hiểu chủ đề tiếp theo,

Phương thức băm trong Python là gì?

Phương thức băm trong Python là một mô-đun được sử dụng để trả về giá trị băm của một đối tượng. Trong lập trình, phương thức băm được sử dụng để trả về các giá trị số nguyên được sử dụng để so sánh các khóa từ điển bằng tính năng tra cứu từ điển. Khi được sử dụng, hàm này sẽ gọi __hash__[]  của một đối tượng được đặt theo mặc định trong quá trình người dùng tạo đối tượng.  

Cú pháp sử dụng phương thức băm như sau.  

hash[object]

Các thông số của phương pháp băm

Phương thức băm dưới dạng mô-đun chỉ đưa vào một tham số duy nhất

Sự vật. Điều này đại diện cho đối tượng có giá trị băm cần được người dùng trả về, có thể ở dạng số nguyên, chuỗi hoặc float.  

Giá trị trả về của phương thức băm

Khi được sử dụng, phương thức băm trả về giá trị băm của một đối tượng nếu có cùng giá trị. Nếu trong một tình huống nhất định, đối tượng có giá trị băm tùy chỉnh, thì phương thức sẽ cắt bớt giá trị băm thành kích thước của Py_ssize_t.  

Hãy để chúng tôi tiếp tục với bài viết Hash In Python này và xem một chương trình mẫu, trước đó, một đề xuất sẽ đảm bảo bạn đã cài đặt tất cả phần mềm cần thiết,

Chương trình mẫu cho phương pháp băm

Để hiểu rõ hơn về chức năng và cách sử dụng phương thức băm, chúng ta hãy xem một vài ví dụ.  

# hash for integer unchanged
print['Hash for 181 is:', hash[181]]
# hash for decimal
print['Hash for 181.23 is:',hash[181.23]]
# hash for string
print['Hash for Python is:', hash['Python']]

đầu ra

Băm cho 181 là. 181

Băm cho 181. 23 là. 530343892119126197

Băm cho Python là. 3607259692854166150

Tiếp tục với bài viết này, chúng ta hãy xem phương pháp tiếp theo

Sử dụng phương pháp băm cho các đối tượng Tuple bất biến

# tuple of vowels
vowels = ['a', 'e', 'i', 'o', 'u']
print['The hash is:', hash[vowels]]

Khi chạy, đầu ra của chương trình trên sẽ giống như thế này.  

Băm là. -7033539107181453990

Hàm băm hoạt động như thế nào đối với các đối tượng tùy chỉnh?

Như đã đề cập trong đoạn trước, khi được sử dụng, phương thức băm sẽ gọi __hash__[] của một đối tượng. Điều này có nghĩa là bất kỳ đối tượng nào cũng có thể ghi đè giá trị băm tùy chỉnh cho một đối tượng.  

Nhưng để có được giá trị băm chính xác, phương thức luôn cần trả về một số nguyên và do đó, người ta cần sử dụng cả __eq__[] cũng như  __hash__[] để tìm giá trị tương tự

Tham khảo bảng bên dưới để hiểu cách triển khai cho các giá trị băm tùy chỉnh.  

__eq__[]

__hash__[]

Sự miêu tả

[Nếu có thể thay đổi] Đã xác định

Không nên định nghĩa

Điều này yêu cầu giá trị băm của khóa là bất biến.  

Được xác định [theo mặc định]

Được xác định [theo mặc định]

Tất cả các đối tượng được so sánh là không bằng nhau.  

Không xác định

Không nên định nghĩa

Nếu __eq__[] không được xác định, thì hàm băm cũng không cần được xác định.  

xác định

Không xác định

__hash__[] sẽ được đặt thành Không.  

TypeError được nâng lên.  

xác định

Giữ lại từ cha mẹ

__hash__ =. __hash__

xác định

Không muốn băm

__hash__ = Không

TypeError được nâng lên.  

Một điều thú vị khác trong bài viết này về Hash In Python là triển khai Phương thức băm cho các đối tượng tùy chỉnh,

Phương pháp băm cho các đối tượng tùy chỉnh

class Person:
def __init__[self, age, name]:
self.age = age
self.name = name
def __eq__[self, other]:
return self.age == other.age and self.name == other.name
def __hash__[self]:
print['The hash is:']
return hash[[self.age, self.name]]
person = Person[23, 'Adam']
print[hash[person]]

Khi chạy, đầu ra của chương trình trên sẽ như thế này,

Băm là

5445254133660435902

Ghi chú. Đối với chương trình trên, phương thức __eq__[] không cần triển khai vì nó được tạo mặc định cho mọi đối tượng

Bây giờ chúng ta hãy xem một vài chương trình mẫu,

Chương trình mẫu 1

# Python 3 code to demonstrate
# working of hash[]
# initializing objects
int_val = 4
str_val = 'PythonIsBest'
flt_val = 24.56
# Printing the hash values.
# Notice Integer value doesn't change
# You'l have answer later in article.
print ["The integer hash value is : " + str[hash[int_val]]]
print ["The string hash value is : " + str[hash[str_val]]]
print ["The float hash value is : " + str[hash[flt_val]]]

Đầu ra cho chương trình trên sẽ là,

Giá trị băm số nguyên là. 4

Giá trị băm của chuỗi là. 2063534490514258345

Giá trị băm float là. 1291272085159665688

Và điều này đưa chúng ta đến phần cuối cùng của bài viết này về Hash In Python,

Chương trình mẫu 2

# Python 3 code to demonstrate
# property of hash[]
# initializing objects
# tuple are immutable
tuple_val = [1, 2, 3, 4, 5]
# list are mutable
list_val = [1, 2, 3, 4, 5]
# Printing the hash values.
# Notice exception when trying
# to convert mutable object
print ["The tuple hash value is : " + str[hash[tuple_val]]]
print ["The list hash value is : " + str[hash[list_val]]] 

Đầu ra cho chương trình trên sẽ là,

Phần kết luận

Phương thức băm là một trong những mô-đun hữu ích nhất trong thư viện Python. Bây giờ bạn đã biết chức năng và cách sử dụng của nó, chúng tôi hy vọng rằng bạn sẽ sử dụng nó thường xuyên hơn trong công việc viết mã hàng ngày của mình. Vì vậy, điều này kết thúc bài viết này, tôi hy vọng bạn đã học được điều gì đó hay và mới

Để 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ý ngay để tham gia khóa đào tạo Python trực tiếp với sự hỗ trợ 24/7 và quyền truy cập trọn đời

Có một câu hỏi cho chúng tôi?

Chúng ta có thể băm danh sách bằng Python không?

Phương thức băm Python[] . Giá trị băm là một số nguyên được sử dụng để so sánh nhanh các khóa từ điển khi tra từ điển. Python hash[] function is a built-in function and returns the hash value of an object if it has one. The hash value is an integer which is used to quickly compare dictionary keys while looking at a dictionary.

Băm một danh sách băm là gì?

Trong khoa học máy tính, danh sách băm là thường là danh sách các hàm băm của khối dữ liệu trong tệp hoặc tập hợp tệp . Danh sách băm được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như bảng tra cứu nhanh [bảng băm] và cơ sở dữ liệu phân tán [bảng băm phân tán].

Băm trong Python là gì?

Phương thức Hash trong Python là gì? . Trong lập trình, phương thức băm được sử dụng để trả về các giá trị số nguyên được sử dụng để so sánh các khóa từ điển bằng tính năng tra cứu từ điển. a module that is used to return the hash value of an object. In programming, the hash method is used to return integer values that are used to compare dictionary keys using a dictionary look up feature.

__ eq __ và __ hash __ trong Python là gì?

__eq__ và __hash__ phải đồng ý - các đối tượng bằng nhau phải có giá trị băm bằng nhau. __hash__ không bao giờ được thay đổi. Băm của một đối tượng không bao giờ được tính toán lại sau khi nó được chèn vào. Các đối tượng thực hiện đẳng thức logic [e. g. thực hiện __eq__ ] phải bất biến để có thể băm được.

Chủ Đề