Dictionary view objects là các đối tượng đặc biệt trong Python, giúp truy xuất danh sách key, value hoặc cặp key-value trong một dictionary mà không tạo bản sao dữ liệu. Nhờ vào đặc điểm này, chúng mang lại hiệu suất tối ưu và cập nhật tự động khi dictionary thay đổi. Trong bài viết này, mình sẽ giúp bạn hiểu rõ về các phương thức items()
, keys()
và values()
, bao gồm cú pháp, cách sử dụng cũng như cơ chế cập nhật tự động của chúng.
Điểm chính cần nắm
- Dictionary view objects trong Python là gì? Dictionary view objects là các đối tượng giúp truy xuất key, value hoặc cặp key-value trong dictionary mà không tạo bản sao dữ liệu.
- Phương thức items(): Trả về một view object chứa danh sách các cặp key-value trong dictionary.
- Phương thức keys(): Trả về một view object chứa danh sách key của dictionary, tự động cập nhật khi dictionary thay đổi.
- Phương thức values(): Trả về một view object chứa danh sách value trong dictionary, giúp truy xuất dữ liệu hiệu quả.
- Vietnix – nhà cung cấp dịch vụ lưu trữ uy tín, tốc độ, bảo mật: Cung cấp giải pháp máy chủ, hosting, VPS chất lượng cao với hỗ trợ kỹ thuật 24/7.
- FAQ: Giải đáp các thắc mắc phổ biến về dictionary view objects trong Python.
Dictionary view objects trong Python là gì?
Dictionary View Objects trong Python là các đối tượng đặc biệt giúp truy xuất key, value hoặc cặp key-value trong một dictionary mà không tạo bản sao dữ liệu. Các đối tượng này tự động cập nhật khi dictionary thay đổi.

Các loại dictionary view objects:
dict.items()
: Trả về một đối tượng chứa danh sách các cặp key-value.dict.keys()
: Trả về một đối tượng chứa danh sách key.dict.values()
: Trả về một đối tượng chứa danh sách value.
Phương thức items()
Phương thức items()
trong Python trả về một đối tượng dict_items
, chứa danh sách các tuple. Mỗi tuple gồm một cặp khóa (key) và giá trị (value) tương ứng.
Cú pháp và giá trị trả về
Dưới đây là cú pháp của phương thức items()
:
dict.items()
Giá trị trả về: Phương thức items()
trả về một đối tượng dict_items
, cung cấp một danh sách động chứa các cặp (key, value) trong dictionary.
Ví dụ phương thức items()
Trong ví dụ sau, mình sử dụng phương thức items()
để lấy đối tượng dict_items
và kiểm tra cách thức thay đổi tự động khi dictionary được cập nhật.
Ví dụ:
Trong ví dụ dưới đây, mình sử dụng phương thức items()
để lấy đối tượng dict_items
từ dictionary vietnix
và kiểm tra cách thức tự động cập nhật khi dictionary thay đổi.
vietnix = {10: "VPS", 50: "Hosting", 20: "Server", 15: "Firewall"}
obj = vietnix.items()
print("type of obj:", type(obj))
print(obj)
print("Cập nhật dictionary vietnix")
vietnix.update({30: "CDN"})
print("View tự động cập nhật")
print(obj)
Kết quả:
type of obj: <class ‘dict_items’>
dict_items([(10, ‘VPS’), (50, ‘Hosting’), (20, ‘Server’), (15, ‘Firewall’)])
Cập nhật dictionary vietnix
View tự động cập nhật
dict_items([(10, ‘VPS’), (50, ‘Hosting’), (20, ‘Server’), (15, ‘Firewall’), (30, ‘CDN’)])
Giải thích chi tiết:
vietnix = {...}
: Tạo một dictionary chứa các sản phẩm của Vietnix.obj = vietnix.items()
: Lấy đối tượngdict_items
từ dictionaryvietnix
.Khi dictionary được cập nhật với
vietnix.update({30: "CDN"})
, đối tượngobj
cũng tự động thay đổi.
Phương thức keys()
Phương thức keys() của lớp dict trả về một đối tượng dict_keys, chứa danh sách tất cả các khóa trong dictionary. Đây là một view object nên danh sách này sẽ tự động cập nhật khi dictionary thay đổi.
Cú pháp và giá trị trả về
Dưới đây là cú pháp của phương thức keys():
dict.keys()
Giá trị trả về: Phương thức keys() trả về đối tượng dict_keys là một view của các khóa trong từ điển.
Ví dụ phương thức keys()
Trong ví dụ này, mình tạo một dictionary tên vietnix, trong đó các khóa là số nguyên và giá trị là tên các dịch vụ. Sau đó, mình sử dụng phương thức keys() để lấy danh sách các khóa và kiểm tra cách danh sách này tự động cập nhật khi dictionary thay đổi.
Ví dụ:
vietnix = {10: "VPS", 20: "Hosting", 30: "Server", 40: "Firewall"}
obj = vietnix.keys()
print("type of obj:", type(obj))
print(obj)
print("Cập nhật dictionary vietnix")
vietnix.update({50: "CDN"})
print("View tự động cập nhật")
print(obj)
Kết quả:
type of obj: <class ‘dict_keys’>
dict_keys([10, 20, 30, 40])
Cập nhật dictionary vietnix
View tự động cập nhật
dict_keys([10, 20, 30, 40, 50])
Giải thích:
keys()
không tạo danh sách mới mà chỉ cung cấp một “view” của các key trong dictionary.Khi dictionary thay đổi, đối tượng
dict_keys
cũng tự động cập nhật.
Phương thức values()
Phương thức values()
trả về một view object chứa tất cả giá trị trong dictionary. Đối tượng này thuộc kiểu dict_values
và sẽ tự động cập nhật khi dictionary thay đổi.
Cú pháp và giá trị trả về
Dưới đây là cú pháp của phương thức values():
dict.values()
Giá trị trả về: Phương thức values()
trả về một đối tượng dict_values
, chứa danh sách động của tất cả các giá trị trong dictionary.
Ví dụ phương thức values()
Trong ví dụ dưới đây, mình lấy một đối tượng view obj
chứa các giá trị của dictionary vietnix
bằng cách sử dụng phương thức values()
.
Ví dụ:
vietnix = {10: "VPS", 20: "Hosting", 30: "Server", 40: "Firewall"}
obj = vietnix.values()
print("type of obj:", type(obj))
print(obj)
print("Cập nhật dictionary vietnix")
vietnix.update({50: "CDN"})
print("View tự động cập nhật")
print(obj)
Kết quả:
type of obj: <class ‘dict_values’>
dict_values([‘VPS’, ‘Hosting’, ‘Server’, ‘Firewall’])
Cập nhật dictionary vietnix
View tự động cập nhật
dict_values([‘VPS’, ‘Hosting’, ‘Server’, ‘Firewall’, ‘CDN’])
Giải thích:
values()
giúp truy xuất danh sách các giá trị của dictionary mà không tạo bản sao mới.Khi dictionary thay đổi,
dict_values
cũng tự động cập nhật.
Vietnix – nhà cung cấp dịch vụ lưu trữ uy tín, tốc độ, bảo mật
Vietnix là một trong những đơn vị hàng đầu tại Việt Nam trong lĩnh vực cho thuê máy chủ (server), hosting, VPS, domain. Với cam kết mang đến giải pháp lưu trữ hiệu quả – bảo mật cao, Vietnix cung cấp dịch vụ chất lượng vượt trội cùng đội ngũ hỗ trợ kỹ thuật 24/7. Hơn 80.000 khách hàng đã tin tưởng lựa chọn Vietnix nhờ vào hệ thống máy chủ ổn định, bảo mật tốt, giúp doanh nghiệp tối ưu hiệu suất và an tâm vận hành.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
Câu hỏi thường gặp
Có thể sử dụng dictionary view objects để so sánh hai dictionary không?
Có thể dùng toán tử ==
để so sánh dict.items()
, ví dụ:
vietnix1 = {10: "VPS", 20: "Hosting"} vietnix2 = {20: "Hosting", 10: "VPS"} print(vietnix1.items() == vietnix2.items()) # True
Có thể kết hợp dictionary view objects với các kiểu dữ liệu khác như set hay tuple không?
Có. Ví dụ, có thể chuyển dict_keys
thành tập hợp để thực hiện phép toán tập hợp:
keys1 = {10, 20, 30} keys2 = vietnix.keys() print(keys1 & keys2) # Phần tử chung giữa hai tập hợp
Làm thế nào để lọc dictionary view objects theo điều kiện nhất định?
Dùng list comprehension hoặc filter():
vietnix = {10: "VPS", 20: "Hosting", 30: "Server"} filtered_keys = [k for k in vietnix.keys() if k > 15] # Chỉ lấy key > 15
Làm sao để cập nhật một dictionary nhưng vẫn giữ nguyên view object hiện có?
Chỉ cần cập nhật dictionary gốc, view object sẽ tự động thay đổi. Không cần tạo lại view object.
Điều gì sẽ xảy ra nếu dictionary bị xóa sau khi tạo view object?
Nếu dictionary bị xóa (del dictionary
), view object sẽ không còn hợp lệ và truy cập vào nó sẽ gây lỗi NameError
.
Dictionary view objects có ảnh hưởng đến hiệu suất chương trình không?
Không đáng kể. Chúng giúp tiết kiệm bộ nhớ so với danh sách thông thường và tối ưu hóa hiệu suất khi thao tác với dictionary có kích thước lớn.
Lời kết
Dictionary view objects cung cấp cách tiếp cận linh hoạt và hiệu quả để làm việc với dữ liệu trong dictionary mà không tốn thêm bộ nhớ. Việc hiểu và tận dụng các phương thức items()
, keys()
và values()
sẽ giúp bạn thao tác dữ liệu một cách tối ưu hơn trong Python. Nếu bạn có bất cứ thắc mắc hay cần hỗ trợ gì, hãy để lại bình luận bên dưới mình hỗ trợ nhanh nhất. Cảm ơn bạn đã đọc!
Mọi người cũng xem: