Phương thức keys() của dictionary Python trả về một đối tượng chứa các khóa (keys) trong dictionary. Bạn có thể dùng phương thức list() để chuyển đối tượng này thành danh sách. Cú pháp phương thức keys(): dictionary.keys().
Bạn có thể muốn lấy danh sách tất cả khóa lưu trong một dictionary.
Ví dụ, bạn có dictionary chứa thông tin một cuốn sách trong thư viện. Bạn muốn lấy tất cả khóa để biết mình lưu loại thông tin nào.
Đó là lúc phương thức keys() của dictionary phát huy tác dụng. Hướng dẫn này sẽ thảo luận, kèm ví dụ, cách dùng phương thức keys() của dictionary trong Python.
Phương Thức keys() Của Dictionary Python
Phương thức keys() của dictionary Python trả về tất cả khóa trong dictionary. Phương thức này trả về khóa dưới dạng một đối tượng đặc biệt (view object) mà bạn có thể lặp qua. keys() không nhận tham số nào.
Cú pháp phương thức keys():
dict_name.keys()
Chúng ta thêm phương thức keys() sau tên dictionary.
Phương thức keys() trả về một view object thay vì danh sách khóa. Đối tượng này có thể lặp (iterable) nên bạn có thể xem nội dung bằng câu lệnh for. Nhưng có thể cần chuyển đối tượng này thành danh sách.
Giả sử bạn muốn in tất cả khóa trong dictionary ra console. Bạn nên chuyển khóa thành danh sách để đầu ra dễ đọc hơn:
key_list = list(dictionary.keys()) print(key_list)
Code này trả về danh sách khóa. Chúng ta biết dữ liệu ở dạng danh sách vì các giá trị được bao quanh bởi ngoặc vuông.
Thay vào đó, giả sử bạn muốn tìm khóa đầu tiên trong dictionary. Bạn có thể làm bằng chỉ mục (indexing). Nhưng trước tiên cần chuyển tập hợp khóa thành danh sách:
key_list = list(dictionary.keys()) print(key_list[0])
Code này tìm khóa tại vị trí index 0 trong danh sách khóa của dict.
Ví Dụ Dictionary keys() Trong Python
Chúng ta có dictionary lưu thông tin đơn hàng tại một tiệm bánh. Dictionary này lưu ba khóa: product, price, và mayo. Mỗi khóa có một giá trị đi kèm.
Chúng ta muốn biết thông tin nào được thu thập cho mỗi đơn hàng. Vì tiệm bánh đang cân nhắc thêm thông tin mới vào mỗi phiếu đơn hàng. Trước khi làm vậy, họ muốn biết tất cả thông tin hiện tại đang thu thập.
Để lấy danh sách khóa trong dictionary, dùng phương thức keys():
order = {
'product': 'Ham Sandwich',
'price': 2.10,
'mayo': False
}
order_keys = order.keys()
print(order_keys)
Code trả về:
['product', 'price', 'mayo']
Trước tiên, định nghĩa dictionary Python tên order. Sau đó dùng order.keys() lấy danh sách khóa trong dictionary. Gán danh sách này cho biến order_keys. Tiếp theo, in giá trị biến order_keys ra console.
Code trả về tất cả khóa trong dictionary.
Cập Nhật Dictionary
Phương thức keys() luôn cập nhật khi chúng ta thêm khóa mới vào dictionary.
Giả sử thêm khóa mới lưu thông tin khách hàng có thanh toán bằng thẻ quà tặng hay không. Code thêm khóa này:
order = {
'product': 'Ham Sandwich',
'price': 2.10,
'mayo': False
}
order_keys = order.keys()
order["gift_card"] = False
print(order_keys)
Chúng ta dùng ký pháp chỉ mục để thêm khóa "gift_card" với giá trị False. Câu lệnh này đặt sau khi đã gán danh sách khóa cho biến order_keys.
Kết quả trả về:
['product', 'price', 'mayo', 'gift_card']
Chúng ta thêm một dòng mới. Dòng này tạo mục mới trong dictionary với khóa gift_card và giá trị False.
Sau đó in nội dung biến order_keys ra console. Dù chúng ta lấy khóa bằng order.keys() trước khi thêm giá trị mới, chương trình vẫn theo dõi được thay đổi.
Ngay cả sau khi thêm khóa mới, phương thức keys() vẫn lưu danh sách cập nhật tất cả khóa trong dictionary.
Kiểm Tra Khóa Trong Dictionary Python
Một trường hợp dùng phổ biến của phương thức keys() là kiểm tra xem một khóa có trong dictionary hay không. Ta có thể kiểm tra bằng câu lệnh in của Python, thường dùng với câu lệnh if.
Giả sử muốn kiểm tra khóa mayo có trong dictionary order hay không. Làm như sau:
order = {
'product': 'Ham Sandwich',
'price': 2.10,
'mayo': False
}
if "mayo" in order.keys():
print("The 'mayo' key is in the order dictionary.")
else:
print("The 'mayo' key is not in the order dictionary")
Kết quả trả về:
"The 'mayo' key is in the order dictionary."
Trong code, đầu tiên định nghĩa dictionary order. Dùng câu lệnh if...in của Python kiểm tra khóa mayo có trong danh sách khóa do order.keys() tạo ra hay không.
mayo là khóa trong dictionary order. Vậy câu lệnh if đánh giá True và code trong if chạy. Nếu xóa khóa mayo, phản hồi sau sẽ trả về:
"The 'mayo' key is not in the order dictionary.
Code nhận ra thành công rằng mayo không còn là khóa trong dictionary. Vậy nội dung câu lệnh else chạy.
Kết Luận
Phương thức keys() của dictionary lấy danh sách khóa trong dictionary Python. Khi dùng với câu lệnh if...in, phương thức keys() cho phép kiểm tra khóa có tồn tại trong dictionary Python hay không. Phương thức keys() không nhận tham số.
Muốn tìm hiểu thêm về lập trình Python? Đọc hướng dẫn How to Learn Python của chúng tôi. Bạn sẽ tìm thấy lời khuyên chuyên gia và định hướng về các khóa học trực tuyến hàng đầu và tài nguyên Python.