Trong Python có tới 4 kiểu cấu trúc dữ liệu là , , và Dictionary. Trong các bài viết trước chúng ta đã từng làm quen với các kiểu dữ liệu này và còn lại Từ điển, một cấu trúc rất hay dùng trong Python, chúng ta sẽ làm quen với nó trong bài viết này
10 sự thật thú vị về ngôn ngữ lập trình Python
11 mẹo học Python dành cho “newbie”
1. Từ điển – Dictionary
Từ điển dữ liệu [Dictionary] còn được gọi là mảng liên kết [mảng kết hợp] trong một số ngôn ngữ lập trình, là một dạng danh sách như bạn đã tìm hiểu. Có một điểm khác là các phần tử trong danh sách được truy xuất thông qua vị trí, phần tử trong từ điển được truy xuất thông qua khóa [key]. Bạn có thể định nghĩa từ khóa này, nó có thể là một chuỗi hoặc số nhưng nó phải là duy nhất trong từ điển
in sao vậy? . Hai người có cùng một số tài khoản, vậy biết chuyển khoản cho ai bây giờ?
Từ điển trong Python cũng có thể tưởng tượng giống như cuốn từ điển Anh – Việt không hạn. Bạn muốn tra từ “python” – tương ứng với từ khóa trong Từ điển, bạn sẽ có phần diễn giải chính là giá trị trong Từ điển. Do đó từ điển bao gồm rất nhiều phần tử mà mỗi phần tử đi theo cặp từ khóa – giá trị [key-value]
1. 1 Khai báo Từ điển
Từ điển trong Python được khai báo với cặp. Bên trong các phần tử theo cặp [khóa và giá trị] được phân tách bằng dấu phẩy, phân tách giữa khóa và giá trị của từng phần tử bằng dấu chấm. Cú pháp chung như sau
dictionary_name = {key_1: value_1, key_2: value_2, ..., key_n: value_n}
Ví dụ
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
Chúng ta cũng có thể sử dụng hàm có sẵn dict[] để khai báo một từ điển
friend_ages = dict[{"Rolf": 24, "Adam": 30, "Anne": 27}]
# Hoặc
friend_ages = dict[[["Rolf", 24], ["Adam", 30], ["Anne", 27]]]
Chú thích
- The key of Dictionary could be string or number, this key is duy nhất ở từng cấp
- Giá trị của Từ điển có thể là Chuỗi, số hoặc cấu trúc Danh sách, Tuple, Bộ hoặc thậm chí là Từ điển
Một ví dụ khai báo Từ điển với giá trị phức tạp
friends = {
"Rolf": {
"phone": "09382993433",
"address": "Boston, America",
"age": 30
},
"Bob": {
"phone": "03099483832",
"address": "London, England",
"age": 33
},
"Anne": {
"phone": "00393982224",
"address": "Texas, America",
"age": 25
}
}
1. 2 Truy xuất giá trị
Từ điển có thể truy xuất giá trị từng phần thông tin điện tử thông qua các từ khóa theo cú pháp
dictionary_name[key_x]
Ví dụ, trong từ điển bạn bè ở trên, chúng ta có thể truy xuất thông tin [giá trị] của Bob [khóa] như sau
print[friends["Bob"]] # Kết quả là {'phone': '03099483832', 'address': 'London, England', 'age': 33}
Chú ý, mỗi phần tử trong Từ điển những người bạn này lại là một Từ điển nên chúng ta có thể truy xuất tiếp theo tuổi của Bob như sau
print[friends["Bob"]["age"]] # Kết quả là 33
Khi truy xuất đến các phần tử trong Dictionary, nếu từ khóa không tồn tại, chương trình sẽ báo lỗi KeyError
print[friends["FirebirD"]] # Kết quả lỗi KeyError: "FirebirD"
Do vậy, trước khi truy xuất giá trị một phần tử trong từ điển, chúng ta cần kiểm tra xem từ khóa có tồn tại hay không với toán tử trong
________số 81. 3 Change value
Từ điển trong Python có thể thay đổi thêm bớt các phần tử, thay đổi giá trị của các phần tử hiện có
1. 3. 1 Thêm và cập nhật phần tử
Từ điển truy xuất thông qua khóa, làm như vậy khi gán giá trị cho một phần tử
- Key tồn tại thì phần tử giá trị được cập nhật
- The key does not being at, Dictionary được bổ sung một phần tử có khóa và giá trị trong câu lệnh
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
# Thay đổi giá trị
friend_ages["Adam"] = 31
# Thêm một phần tử
friend_ages["Firebird"] = 37
print[friends] # Kết quả là {'Rolf': 24, 'Adam': 31, 'Anne': 27, 'Firebird': 37}
Ngoài ra chúng ta có thể sử dụng phương thức. update[] để bổ sung hoặc chỉnh sửa giá trị nhiều phần tử trong từ điển. Trong ví dụ tiếp theo, chúng ta vừa thực hiện sửa đổi tuổi của Rolf thành 25 và thêm một phần tử mới vào từ điển
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
01. 3. 2 Delete the dictionary section
Cũng giống như Danh sách, Từ điển có rất nhiều phương thức có sẵn để có thể xóa một phần tử khỏi từ điển như. xa lạ[],. nhạc pop[],. popitem[] hoặc sử dụng từ khóa del
clear[] Xóa toàn bộ các phần tử từ điển
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
1popitem[] Xóa một ngẫu nhiên phần tử
pop[] Xóa một phần tử với khóa cho trước từ điển
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
2xóa một phần tử hoặc xóa chắc chắn các biến chứa từ điển
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
31. 4 A number of method in Dictionary
1. 4. 1 Phương thức. sao chép[]
Phương thức này trả về một bản sao riêng biệt. Chú ý, phương thức. copy[] has other point so with gán biến trong Python. Chúng ta cùng xem ví dụ sau
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
4Như vậy, với phương thức. copy[] toàn bộ bộ nhớ liên quan đến biến friend_ages được sao chép sang một vùng khác trong bộ nhớ, vậy biến cũ thay đổi thì biến mới không thay đổi do tham chiếu đến vùng nhớ khác trên bộ nhớ. Còn khi gán giá trị bằng dấu =, biến đó vẫn tham chiếu đến vùng nhớ của biến cũ, nên khi biến cũ thay đổi, biến mới cũng thay đổi theo
1. 4. 2 Phương thức. lấy[]
Trả về giá trị của một phần tử trong Từ điển với một từ khóa cho trước, nó giống với truy xuất giá trị tại mục 1. 2 nhưng có một biệt thự nhỏ khác, nếu từ khóa không tồn tại, chương trình sẽ không báo lỗi mà trả lại giá trị Không có
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
51. 4. 3 Phương thức. keys[] and. giá trị[]
Hai phương thức này trả về danh sách khóa và danh sách các giá trị của từ điển. Ví dụ
friend_ages = {"Rolf": 24, "Adam": 30, "Anne": 27}
print[friend_ages["Adam"]] # Kết quả là 30
6So sánh List, Tuple, Set và Dictionary
Bạn đã giới thiệu 4 cấu trúc dữ liệu có trong Python là Danh sách, Tuple, Bộ và Từ điển, có vẻ như hơi nhiều vấn đề. Trong từng bài viết, chúng ta đã có những so sánh hai khái niệm với nhau, giờ là lúc chúng ta tổng hợp lại toàn bộ những gì đã học về 4 cấu trúc dữ liệu này
Cách mạng
- [giá trị_1, giá trị_2, …, giá trị_n]. Khai báo danh sách [List]
- [giá trị_1, giá trị_2, …, giá trị_n]. Khai báo Tuple
- {value_1, value_2, …, value_n}. Khai báo tập hợp [Set]
- {key_1. giá trị_1, khóa_2. giá trị_2, …, key_n. giá trị_n}. Khai báo từ điển [Dictionary]
Sau khi làm quen với 4 cấu trúc List, Tuple, Set và Dictionary, có thể bạn sẽ rất hoa mắt. Nên chọn cấu trúc nào để phù hợp với chương trình của bạn?
Sau đó, chúng ta cùng đúc kết để có được câu trả lời cho. Khi nào sử dụng List, Tuple, Set hay Dictionary trong Python?