Python - Bảng băm
Bảng băm là một kiểu cấu trúc dữ liệu trong đó địa chỉ hoặc giá trị chỉ mục của phần tử dữ liệu được tạo từ một hàm băm. Điều đó làm cho việc truy cập dữ liệu nhanh hơn vì giá trị chỉ mục hoạt động như một khóa cho giá trị dữ liệu. Nói cách khác, bảng băm lưu trữ các cặp khóa-giá trị nhưng khóa được tạo ra thông qua một hàm băm.
Vì vậy, chức năng tìm kiếm và chèn của một phần tử dữ liệu trở nên nhanh hơn nhiều khi bản thân các giá trị khóa trở thành chỉ mục của mảng lưu trữ dữ liệu.
Trong Python, các kiểu dữ liệu Từ điển đại diện cho việc triển khai các bảng băm. Các phím trong từ điển đáp ứng các yêu cầu sau.
- Các khóa của từ điển có thể băm được tức là các khóa được tạo ra bởi hàm băm tạo ra kết quả duy nhất cho mỗi giá trị duy nhất được cung cấp cho hàm băm.
- Thứ tự của các phần tử dữ liệu trong từ điển không cố định.
Vì vậy, chúng ta thấy việc triển khai bảng băm bằng cách sử dụng các kiểu dữ liệu từ điển như bên dưới.
Truy cập các giá trị trong từ điển
Để truy cập các phần tử từ điển, bạn có thể sử dụng dấu ngoặc vuông quen thuộc cùng với khóa để lấy giá trị của nó.
# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
# Accessing the dictionary with its key
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
dict['Name']: Zara
dict['Age']: 7
Cập nhật từ điển
Bạn có thể cập nhật từ điển bằng cách thêm mục nhập mới hoặc cặp khóa-giá trị, sửa đổi mục nhập hiện có hoặc xóa mục nhập hiện có như được minh họa bên dưới trong ví dụ đơn giản -
# Declare a dictionary
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
When the above code is executed, it produces the following result −
dict['Age']: 8
dict['School']: DPS School
Xóa các thành phần từ điển
Bạn có thể xóa từng phần tử từ điển hoặc xóa toàn bộ nội dung của từ điển. Bạn cũng có thể xóa toàn bộ từ điển chỉ trong một thao tác. Để xóa toàn bộ từ điển một cách rõ ràng, chỉ cần sử dụng câu lệnh del. -
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Điều này tạo ra kết quả sau. Lưu ý rằng một ngoại lệ được đưa ra vì sau từ điển del dict không còn tồn tại nữa -
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable