Làm thế nào để bạn thêm một giá trị từ hai từ điển trong python?

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ất

d1 = {'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'}
1

Tuy 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