Không có gì lạ khi có hai từ điển trong Python mà bạn muốn kết hợp. Trong bài viết này, chúng ta sẽ xem xét nhiều cách khác nhau về cách hợp nhất hai từ điển trong Python
Một số giải pháp không có sẵn cho tất cả các phiên bản Python, vì vậy chúng tôi cũng sẽ kiểm tra các cách hợp nhất cho các bản phát hành đã chọn
Khi hợp nhất các từ điển, chúng ta phải xem xét điều gì sẽ xảy ra khi hai từ điển có cùng khóa. Trước tiên hãy xác định điều gì sẽ xảy ra khi chúng ta hợp nhất
Hợp nhất từ điển trong Python
Việc hợp nhất thường xảy ra từ phải sang trái, như
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
0. Khi có một bộ giữ khóa chung trong cả hai từ điển, giá trị của từ điển thứ hai sẽ ghi đè giá trị của từ điển thứ nhấtĐiều này có thể được chứng minh trong hình minh họa dưới đây, trong đó các thành phần của từ điển B được hợp nhất với A, với bộ từ điển màu xanh lá cây của từ điển B thay thế cho bộ màu cam
Trong suốt bài viết này, chúng tôi sẽ sử dụng các từ điển sau
- Từ điển có giá trị
>>> a = {1:'peanut', 2:'butter', 3:'jelly', 4:'time'}
>>> b = {1:'fish', 2:'chips'}
- Từ điển có giá trị lồng nhau
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
Trăn 3. 9 trở lên
Từ phiên bản Python 3. 9 trở đi, chúng ta có thể sử dụng các toán tử hợp nhất [được đại diện bởi
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
1 ] để kết hợp hai từ điển>>> x = a | b
>>> print[x]
{1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'}
Các toán tử hợp nhất từ điển cũng có thể được sử dụng ở vị trí của các từ điển lồng nhau. Tại đây, quá trình ghi đè hoàn toàn giá trị của khóa phù hợp diễn ra
>>> y = c | d
>>> print[y]
{1: ['fish', 'chips'], 2: ['peanut', 'butter', 'jelly', 'time']}
Python 3 trở lên
Đối với các phiên bản trước của Python 3, rất tiếc là chúng tôi không thể sử dụng các toán tử hợp nhất. Thay vào đó, chúng ta có thể hợp nhất bằng cách giải nén cả hai từ điển, sử dụng dấu hoa thị kép
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
2, bên trong một từ điển khác như hình bên dưới>>> x = {**a, **b}
>>> print[x]
{1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'}
Điều tương tự cũng áp dụng cho các từ điển có giá trị danh sách lồng nhau. Các giá trị của các phím chồng chéo sẽ được ghi đè như sau
Python 2 trở lên
Trong các phiên bản Python cũ, các đoạn mã trên sẽ không hoạt động. Thay vào đó, việc hợp nhất có thể được tạo điều kiện thuận lợi bằng cách kết hợp các mục của từ điển hoặc
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
3 của cả hai biếnChúng ta cũng có thể sử dụng phương pháp từ điển
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
4 và >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
5. Cuối cùng, chúng ta có thể lặp qua các mục của từ điển và sử dụng phương thức >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
6 để thêm nó vào từ điển khácSử dụng các mục[]
Hãy bắt đầu bằng cách kết hợp với
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
7>>> a = {1:'peanut', 2:'butter', 3:'jelly', 4:'time'}
>>> b = {1:'fish', 2:'chips'}
4Cú pháp trên phù hợp với các giá trị đơn giản. Đối với một từ điển lồng nhau chứa các giá trị danh sách, lệnh gọi
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
7 cần được chuyển thành một >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
9 rồi kết hợp>>> a = {1:'peanut', 2:'butter', 3:'jelly', 4:'time'}
>>> b = {1:'fish', 2:'chips'}
7Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Giải pháp này hoạt động tốt vì các phím là số, các phím gốc được giữ nguyên. Đối với các loại khóa khác nhau, bạn sẽ thích tùy chọn sau
Một cách khác để thực hiện hợp nhất là sao chép một trong các từ điển và cập nhật nó với từ điển khác như hình bên dưới
>>> a = {1:'peanut', 2:'butter', 3:'jelly', 4:'time'}
>>> b = {1:'fish', 2:'chips'}
8Nối các giá trị danh sách trong tất cả các phiên bản Python
Trong các phần trước, chúng ta đã ghi đè các giá trị lồng nhau của các từ điển đã hợp nhất. Có những trường hợp các giá trị lồng nhau cần được thêm vào thay vì ghi đè
Điều này có thể được thực hiện bằng cách sử dụng phương pháp
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
6 như hình bên dưới>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']}
>>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}
0Phần kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách hoạt động của tính năng hợp nhất từ điển và cách chúng ta có thể hợp nhất hai từ điển trong các phiên bản Python khác nhau. Hợp nhất từ điển có thể khá tiện dụng trong các tình huống như đọc nhiều tệp JSON, xây dựng bản đồ đối tượng hoặc thậm chí xây dựng chỉ mục nội dung