Dictionary (từ điển) trong Python là một kiểu cấu trúc dữ liệu ánh xạ khóa (key) đến giá trị (value) dưới dạng cặp key-value. Chúng là một trong những cấu trúc dữ liệu được sử dụng thường xuyên và có nhiều thuộc tính thú vị. Chúng được biểu diễn bằng cách bao quanh chúng trong một cặp ngoặc nhọn như sau:
dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
Các phần tử hoặc cặp key-value trong dictionary được biểu diễn trong ngoặc đơn và phân tách bằng dấu hai chấm.
Tạo Dictionary
Chúng ta tạo một dictionary bằng cách gán các giá trị được viết dưới dạng key-value.
Ví dụ
Dict1 = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
print(type(Dict1))
print(Dict1)
# Sử dụng phương thức dict()
dict2 = dict({('day1', 'Mon'), ('day2', 'Tue'), ('day3', 'Wed')})
print(type(dict2))
print(dict2)
Kết quả
Chạy mã trên cho kết quả sau:
{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
Truy cập giá trị trong Dictionary
Để truy cập các phần tử của dictionary, chúng ta có thể sử dụng ngoặc vuông cùng với khóa để lấy giá trị của nó. Chúng ta cũng có thể sử dụng phương thức get() để lấy giá trị cho các phần tử của dictionary.
Ví dụ
dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed', 'weekend': {'d1': 'Saturday', 'd2': 'Sunday'}}
print(dict['day2'])
print(dict['weekend'])
print(dict.get('day3'))
Kết quả
Chạy mã trên cho kết quả sau:
Tue
{'d1': 'Saturday', 'd2': 'Sunday'}
Wed
Thêm phần tử vào Dictionary
Chúng ta thêm các phần tử mới vào dictionary bằng cách thêm một cặp key-value mới. Chúng ta cũng có thể thêm một dictionary khác làm phần tử để tạo dictionary lồng nhau.
Ví dụ
dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day4'] = 'Thu'
dict['day5'] = 'Fri'
print(dict)
Kết quả
Chạy mã trên cho kết quả sau:
{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed', 'day4': 'Thu', 'day5': 'Fri'}
Cập nhật Dictionary
Chúng ta có thể cập nhật dictionary bằng cách thêm một mục mới hoặc cặp key-value và sửa đổi một mục hiện có. Chúng ta đã thấy việc thêm phần tử mới vào dictionary ở trên. Bây giờ chúng ta sẽ thấy sửa đổi mục hiện có. Ở đây chúng ta chỉ cần lấy khóa và gán giá trị mới cho phần tử.
Ví dụ
dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day1'] = 'Monday'
dict['day2'] = 'Tuesday'
print(dict)
Kết quả
Chạy mã trên cho kết quả sau:
{'day1': 'Monday', 'day2': 'Tuesday', 'day3': 'Wed'}
Xóa phần tử của Dictionary
Các phần tử cụ thể của dictionary có thể bị xóa bằng từ khóa del. Nó cũng có thể được dùng để xóa toàn bộ dictionary. Cũng có phương thức clear() có thể dùng để xóa các phần tử khỏi toàn bộ dictionary.
Ví dụ
dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
print(dict)
del dict['day3']
print(dict)
dict.clear()
print(dict)
Kết quả
Chạy mã trên cho kết quả sau:
{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
{'day1': 'Mon', 'day2': 'Tue'}
{}
Một số lỗi thường gặp khi sử dụng dictionary trong Python
- Sử dụng
dict_name[key_value]để truy cập giá trị có thể không luôn hoạt động đúng và ném ra ngoại lệ. Vì vậy, phương thứcget()là phương pháp tốt hơn để truy cập các phần tử của dictionary. - Tương tự, hãy sử dụng phương thức
update(key=value)để cập nhật giá trị trong dictionary thay vì sử dụng cách trực tiếpdict_name[key_value] = 'new_value'. - Tạo bản sao của một dictionary bằng cách sử dụng
dict1 = dict2sẽ tạo ra hai dictionary nhưng cả hai đều tham chiếu đến cùng một đối tượng. Vì vậy, cả hai sẽ được cập nhật cùng một lúc. Hãy sử dụng shallow copy (bản sao nông) nếu bạn muốn tránh cập nhật cả hai bản sao. - Để duyệt qua các phần tử của dictionary theo một thứ tự cụ thể, hãy sử dụng phương thức
sorted(). - Hãy cân nhắc khi nào nên sử dụng dictionary và khi nào không nên, vì có các cấu trúc dữ liệu khác như tuple, set, v.v. có thể phù hợp hơn với yêu cầu.