Hướng dẫn này sẽ viết một chương trình Python để kết hợp hai từ điển với các khóa chung. Từ điển là một cấu trúc dữ liệu Python lưu trữ dữ liệu trong cặp khóa-giá trị. Mỗi khóa phải là bất biến và duy nhất trong từ điển. Hãy hiểu tuyên bố vấn đề trên
Báo cáo vấn đề
Chúng ta cần hợp nhất từ điển đã cho và tạo từ điển mới dựa trên các khóa chung. Hãy xem ví dụ sau
Ví dụ -
Hãy hiểu các giải pháp sau đây
Giải pháp
Chúng tôi sẽ giải quyết vấn đề này bằng cách sử dụng Mô-đun bộ đếm. Hãy xem đoạn mã sau
Ví dụ -
đầu ra
The new dict is: Counter[{'a': 400, 'b': 400, 'd': 400, 'c': 300}]
Giải trình -
Chúng tôi đã nhập chức năng Bộ đếm từ mô-đun bộ sưu tập trong đoạn mã trên. Sau đó, chúng tôi đã gán hai từ điển và gọi hàm Counter[] trên dict1 và dict2. Phương pháp này tìm các khóa chung và tính tổng các giá trị của chúng. Trong dict1, khóa a có giá trị là 100 và trong dict2, a có giá trị là 200. Vì vậy, phương thức Counter[] đã thêm cả hai giá trị và trả về giá trị mới là 400. Do đó chúng tôi đã tạo ra một từ điển mới
Ví dụ - 2
đầu ra
The new dict is: {'a': 400, 'b': 400, 'd': 400, 'c': 300}
Giải trình -
Trong đoạn mã trên, chúng tôi đã khởi tạo từ điển và dict2 trong new_dict. Sau đó, chúng tôi chạy vòng lặp bằng cách sử dụng phương thức items[] cho dict2. Sau đó, chúng tôi đã kiểm tra xem khóa có tồn tại trong dict1 hay không;
Ví dụ - 3
đầu ra
{'a': 400, 'b': 400, 'c': 300, 'd': 400}
Ví dụ - 4
đầu ra
{'a': 400, 'b': 400, 'c': 300, 'd': 400}
Phần kết luận
Câu hỏi lập trình này có thể được hỏi trong vòng phỏng vấn kỹ thuật. Hướng dẫn này bao gồm các giải pháp của vấn đề cùng với lời giải thích
Trong Python, từ điển là một cấu trúc dữ liệu chứa các phần tử ở dạng cặp khóa-giá trị trong đó các khóa được sử dụng để truy cập các giá trị của từ điển. Từ điển Python không có thứ tự và có thể thay đổi. e. các yếu tố của từ điển có thể được thay đổi
Trong bài viết này, chúng ta sẽ khám phá năm cách khác nhau để hợp nhất hai hoặc nhiều từ điển, cùng với một cách thô
Đối với bài viết này, chúng ta hãy tạo hai từ điển
d3 = d1.copy[]
for key, value in d2.items[]:
d3[key] = value
print[d3]
8 và d3 = d1.copy[]
for key, value in d2.items[]:
d3[key] = value
print[d3]
9 mà chúng ta muốn ghép thành một từ điển duy nhấtd1 = {'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.'}
d2 = {'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Con đường thô sơ
Bạn có thể hợp nhất hai từ điển bằng cách lặp lại các cặp khóa-giá trị của từ điển thứ hai với từ điển thứ nhất
d3 = d1.copy[]
for key, value in d2.items[]:
d3[key] = value
print[d3]
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Bây giờ, chúng ta hãy xem những cách hợp nhất từ điển sạch hơn và tốt hơn
Phương pháp 1. Sử dụng phương pháp cập nhật
Từ điển có một phương thức hợp nhất từ điển với các mục từ từ điển khác tại chỗ và ghi đè lên các khóa hiện có
d4 = d1.copy[]
d4.update[d2]
print[d4]
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Phương thức cập nhật sửa đổi từ điển hiện tại. Vì vậy, bạn có thể muốn tạo một bản sao của từ điển trước khi thao tác trên từ điển
Phương pháp 2. Sử dụng toán tử giải nén
Chúng ta có thể hợp nhất các từ điển trong một dòng bằng cách sử dụng toán tử giải nén [**]
d5 = {**d1, **d2}
print[d5]
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Chúng tôi cũng có thể hợp nhất nhiều từ điển bằng phương pháp này
{**dict1, **dict2, **dict3}
Phương pháp 3. Sử dụng bộ sưu tập. Bản Đồ Chuỗi
Đây có lẽ là phương pháp ít được biết đến nhất để hợp nhất từ điển
lớp từ mô-đun Bộ sưu tập nhóm nhiều từ điển trong một chế độ xem
from collections import ChainMap
d6 = ChainMap[d1, d2]
print[d6]
Output:
ChainMap[{'Canada': 'Ottawa',
'India': 'Delhi',
'United States': 'Washington D. C.'},
{'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}]
Phương thức này trả về một đối tượng của lớp ChainMap. Chúng ta vẫn có thể sử dụng đối tượng này như chúng ta sẽ sử dụng bất kỳ từ điển nào khác. e. g.
Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
0 sẽ trở lại Output:
{'India': 'Delhi',
'Canada': 'Ottawa',
'United States': 'Washington D. C.',
'France': 'Paris',
'Malaysia': 'Kuala Lumpur'}
1Tuy nhiên, trong trường hợp các khóa giống nhau trong hai từ điển, phương thức này sẽ trả về giá trị của từ điển thứ nhất, không giống như các phương thức khác trả về giá trị từ từ điển thứ hai