Như nhiều câu hỏi về chủ đề ở đây trên SO chứng thực, tham gia một lát một cuốn từ điển là một nhiệm vụ khá phổ biến, với một giải pháp khá tốt đẹp:Python tạo view dict riêng của tập hợp con của từ điển
{k:v for k,v in dict.viewitems() if some_test(k,v)}
Nhưng tạo ra một từ điển mới, với ánh xạ riêng của nó. Đối với nhiều hoạt động, sẽ thật tuyệt khi chỉ có một cái nhìn bất biến về nguyên tắc gốc (tức là nó không hỗ trợ các hoạt động gán hoặc xóa trên màn hình). Việc thực hiện một kiểu như vậy có lẽ là dễ dàng, nhưng nó không tốt để có sự gia tăng của các lớp tiện ích cục bộ.
Vì vậy, câu hỏi của tôi là: có cách tích hợp để có được "chế độ xem tập hợp con" như vậy không? Hoặc là có một thư viện của bên thứ ba (tốt nhất là có sẵn thông qua PyPi) cung cấp một thực hiện tốt các tiện ích như vậy?
Tôi cho rằng "chế độ xem bất biến" trên từ điển chính xác là những gì bạn nhận được với mã ví dụ của mình ... vì không có bản sao từ điển riêng biệt, tôi không chắc chắn bạn sẽ làm như thế nào "không thể thay đổi" một phần công việc. – larsks
@larsks: Đơn giản là không hỗ trợ chuyển nhượng. – Marcin
@ larsks: Tôi giả định rằng "xem bất biến" OP có nghĩa là chính đối tượng xem không có phương pháp để biến đổi từ điển (ví dụ pop) và bất kỳ thay đổi nào đối với dict được bao bọc sẽ hiển thị ngay lập tức trong chế độ xem. Tất nhiên, nó không phải là bất biến theo nghĩa "sâu" - tức là, nếu bạn làm my_view [some_key] .append (12), thì tất nhiên giá trị tương ứng với 12 sẽ được sửa đổi. –