3 cách đơn giản để hợp nhất từ điển Python


Tìm hiểu cách hợp nhất các từ điển Python một cách hiệu quả bằng cách sử dụng các phương thức tích hợp, giải nén và toán tử hợp.

Khi làm việc với từ điển trong Python, đôi khi bạn sẽ phải hợp nhất chúng thành một từ điển duy nhất để xử lý thêm.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu ba phương pháp phổ biến để hợp nhất các từ điển Python. Cụ thể, chúng tôi sẽ tập trung vào việc hợp nhất các từ điển bằng cách sử dụng:

  • Phương thức update()
  • Giải nén từ điển
  • Người điều hành công đoàn

Hãy bắt đầu.

Lưu ý: Bạn có thể tìm thấy các ví dụ về mã trên GitHub.

1. Sử dụng phương thức update()

Để hợp nhất hai từ điển, bạn có thể sử dụng phương thức từ điển update(). Bạn có thể sử dụng phương thức update() để cập nhật một từ điển hiện có với các cặp khóa-giá trị từ một từ điển khác như sau:

dict1.update(dict2)

Đây :

  • dict1: Từ điển gốc cần được cập nhật.
  • dict2: Từ điển có cặp khóa-giá trị sẽ được thêm vào dict1.

Lưu ý: Phương pháp này trực tiếp sửa đổi từ điển gốc. Nếu không muốn điều đó, bạn có thể tạo một bản sao của từ điển gốc và cập nhật bản sao.

Giả sử chúng ta có hai từ điển cấu hình, config1config2 chứa thông tin cấu hình để kết nối với cơ sở dữ liệu:

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Bây giờ hãy hợp nhất một bản sao của config1 với config2:

# Merge using update() method
final_config = config1.copy()  # Create a copy to avoid modifying the original config1
final_config.update(config2)

print(final_config)

Như đã thấy, phương thức update() thêm tất cả các cặp khóa-giá trị từ config2 vào final_config, tạo ra một từ điển kết hợp với tất cả thông tin cấu hình .

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

2. Sử dụng giải nén từ điển: {**dict1, **dict2}

Giống như cách bạn giải nén các bộ dữ liệu, bạn cũng có thể giải nén các từ điển bằng cách sử dụng **. Làm như vậy sẽ tạo ra một từ điển mới bằng cách giải nén các cặp khóa-giá trị từ cả hai từ điển.

Giả sử bạn có từ điển dict1dict2. Bạn có thể giải nén các cặp khóa-giá trị và hợp nhất chúng vào một từ điển mới như sau:

merged_dict = {**dict1, **dict2}

Hãy hợp nhất các từ điển cấu hình như được hiển thị:

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using dictionary unpacking
final_config = {**config1, **config2}

print(final_config)

Phương thức giải nén từ điển {**config1, **config2 tạo một từ điển mới final_config chứa tất cả các cặp khóa-giá trị từ cả hai config1config2.

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

3. Sử dụng Liên minh | Toán tử

Toán tử hợp, được giới thiệu trong Python 3.9, là một cách ngắn gọn khác để hợp nhất hai từ điển.

Bạn có thể sử dụng toán tử công đoàn như vậy:

merged_dict = dict1 | dict2

Sử dụng dict1 | dict2 hợp nhất dict1dict2 vào một từ điển mới.

config1 = {
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432
}

config2 = {
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

# Merge using | operator
final_config = config1 | config2

print(final_config)

Toán tử | hợp nhất config1config2 vào một từ điển mới final_config:

Output >>>
{
	'database': 'Postgres',
	'host': 'localhost',
	'port': 5432,
	'username': 'admin',
	'password': 'secret',
	'timeout': 30
}

Kết thúc

Hãy xem xét các phương pháp khác nhau để hợp nhất từ điển Python:

  • Phương thức update()dict1.update(dict2)—cập nhật một từ điển hiện có.
  • {**dict1, **dict2 tạo một từ điển hợp nhất mới bằng cách giải nén.
  • Công đoàn | toán tử trong Python 3.9+ hợp nhất các từ điển với cú pháp đơn giản dict1 | dict2.

Đây không phải là danh sách đầy đủ bao gồm tất cả các phương pháp hợp nhất từ điển. Có các phương pháp khác như hiểu danh sách, tạo chế độ xem hợp nhất của từ điển bằng cách sử dụng bộ sưu tập.ChainMap, v.v. Tuy nhiên, đây là những phương pháp phổ biến nhất để hợp nhất các từ điển.

Chúc mừng mã hóa!

Bala Priya C là nhà phát triển và nhà văn kỹ thuật đến từ Ấn Độ. Cô ấy thích làm việc ở lĩnh vực giao thoa giữa toán học, lập trình, khoa học dữ liệu và sáng tạo nội dung. Các lĩnh vực chuyên môn và quan tâm của cô bao gồm DevOps, khoa học dữ liệu và xử lý ngôn ngữ tự nhiên. Cô ấy thích đọc, viết, viết mã và cà phê! Hiện tại, cô ấy đang nỗ lực học hỏi và chia sẻ kiến thức của mình với cộng đồng nhà phát triển bằng cách viết các hướng dẫn, hướng dẫn cách thực hiện, các ý kiến, v.v. Bala cũng tạo ra các hướng dẫn viết mã và tổng quan tài nguyên hấp dẫn.