Giới thiệu về Dictionary trong Python
Dictionary là gì?
Dictionary là một tập hợp các cặp key-value không có thứ tự. Các key trong dictionary phải là các đối tượng bất biến (immutable) như chuỗi, số hoặc tuple, trong khi các giá trị có thể là bất kỳ kiểu dữ liệu nào, bao gồm cả list, tuple, set, hoặc thậm chí là dictionary khác.
python
# Tạo một dictionary
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
print(my_dict)
Output:
{'name': 'John', 'age': 25, 'city': 'New York'}
Tính chất của Dictionary
- Không có thứ tự: Các phần tử trong dictionary không có thứ tự cụ thể.
- Không có phần tử trùng lặp: Key trong dictionary phải là duy nhất.
- Có thể thay đổi: Bạn có thể thêm, xóa, hoặc thay đổi các phần tử trong dictionary.
Truy cập phần tử của Dictionary
Truy cập bằng khóa (key)
Cách phổ biến nhất để truy cập phần tử trong dictionary là sử dụng khóa (key). Bạn có thể truy cập giá trị của một khóa bằng cách đặt khóa đó trong cặp ngoặc vuông []
.
Ví dụ:
python
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
print(my_dict['name']) # Kết quả: John
print(my_dict['age']) # Kết quả: 25
Nếu bạn cố gắng truy cập một khóa không tồn tại, Python sẽ gây ra lỗi KeyError
.
python
print(my_dict['country']) # KeyError: 'country'
Sử dụng phương thức get()
Phương thức get()
cung cấp một cách an toàn hơn để truy cập giá trị của một khóa. Nếu khóa không tồn tại, get()
sẽ trả về None
hoặc một giá trị mặc định mà bạn chỉ định.
Cú pháp:
python
dict.get(key, default=None)
Ví dụ:
python
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
print(my_dict.get('name')) # Kết quả: John
print(my_dict.get('country')) # Kết quả: None
print(my_dict.get('country', 'USA')) # Kết quả: USA
Truy cập tất cả các khóa và giá trị
Python cung cấp các phương thức keys()
, values()
, và items()
để truy cập tất cả các khóa, giá trị, và cặp khóa-giá trị trong dictionary.
-
keys()
: Trả về một view object chứa tất cả các khóa trong dictionary.pythonmy_dict = {'name': 'John', 'age': 25, 'city': 'New York'} print(my_dict.keys()) # Kết quả: dict_keys(['name', 'age', 'city'])
-
values()
: Trả về một view object chứa tất cả các giá trị trong dictionary.pythonmy_dict = {'name': 'John', 'age': 25, 'city': 'New York'} print(my_dict.values()) # Kết quả: dict_values(['John', 25, 'New York'])
-
items()
: Trả về một view object chứa tất cả các cặp khóa-giá trị trong dictionary dưới dạng tuple.pythonmy_dict = {'name': 'John', 'age': 25, 'city': 'New York'} print(my_dict.items()) # Kết quả: dict_items([('name', 'John'), ('age', 25), ('city', 'New York')])
Sử dụng vòng lặp để truy cập phần tử
Bạn có thể sử dụng vòng lặp for
để duyệt qua các phần tử trong dictionary.
Duyệt qua các khóa
python
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for key in my_dict:
print(key)
Kết quả:
name
age
city
Duyệt qua các giá trị
python
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for value in my_dict.values():
print(value)
Kết quả:
John
25
New York
Duyệt qua các cặp khóa-giá trị
python
my_dict = {'name': 'John', 'age': 25, 'city': 'New York'}
for key, value in my_dict.items():
print(f"{key}: {value}")
Kết quả:
name: John
age: 25
city: New York
Truy cập phần tử trong dictionary lồng nhau
Dictionary trong Python có thể chứa các dictionary khác, tạo ra các dictionary lồng nhau. Bạn có thể truy cập các phần tử trong dictionary lồng nhau bằng cách sử dụng nhiều chỉ số khóa.
Ví dụ:
python
nested_dict = {
'person1': {'name': 'John', 'age': 25},
'person2': {'name': 'Jane', 'age': 30}
}
print(nested_dict['person1']['name']) # Kết quả: John
print(nested_dict['person2']['age']) # Kết quả: 30
Các phương thức hữu ích khác của Dictionary
setdefault()
Phương thức setdefault()
trả về giá trị của khóa nếu khóa đó tồn tại, nếu không, nó sẽ thêm khóa với giá trị mặc định và trả về giá trị mặc định đó.
Cú pháp:
python
dict.setdefault(key, default=None)
Ví dụ:
python
my_dict = {'name': 'John', 'age': 25}
print(my_dict.setdefault('name', 'Doe')) # Kết quả: John
print(my_dict.setdefault('city', 'New York')) # Kết quả: New York
print(my_dict) # Kết quả: {'name': 'John', 'age': 25, 'city': 'New York'}
update()
Phương thức update()
được sử dụng để cập nhật dictionary với các cặp khóa-giá trị từ một dictionary khác hoặc từ một iterable chứa các cặp khóa-giá trị.
Cú pháp:
python
dict.update([other])
Ví dụ:
python
my_dict = {'name': 'John', 'age': 25}
my_dict.update({'city': 'New York', 'age': 26})
print(my_dict) # Kết quả: {'name': 'John', 'age': 26, 'city': 'New York'}
Xử lý lỗi khi truy cập phần tử
Khi truy cập phần tử trong dictionary, bạn có thể gặp phải lỗi KeyError
nếu khóa không tồn tại. Để xử lý lỗi này, bạn có thể sử dụng câu lệnh try-except
.
Ví dụ:
python
my_dict = {'name': 'John', 'age': 25}
try:
print(my_dict['city'])
except KeyError:
print("Khóa không tồn tại trong dictionary")
Kết quả:
Khóa không tồn tại trong dictionary
Kết luận
Dictionary là một kiểu dữ liệu mạnh mẽ và linh hoạt trong Python, cho phép bạn lưu trữ và truy cập các cặp giá trị (key-value) một cách hiệu quả. Bằng cách nắm vững các kỹ thuật truy cập phần tử, sử dụng các phương thức hữu ích, và xử lý lỗi, bạn có thể dễ dàng làm việc với dictionary để giải quyết nhiều bài toán lập trình khác nhau. Hy vọng rằng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan và chi tiết về cách truy cập và thao tác với các phần tử của dictionary trong Python.