5 Cách Dễ Dàng Để Hợp Nhất Từ Điển Trong Python
Trong Python, một từ điển là một cấu trúc dữ liệu chứa các thành phần dưới dạng một 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, tức là 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á 05 cách khác nhau để hợp nhất hai hoặc nhiều từ điển.
Đầu tiên ta tạo hai từ điển d1
và d2
và sau đó ta ghép chúng thành một từ điển duy nhất:
d1 = {'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoaky': 'Washington DC'}
d2 = {'Phap': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Cách thông thường
Bạn có thể hợp nhất hai từ điển bằng cách lặp qua 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)
Ouput:
{'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoaky': 'Washington DC',
'Phap': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Bây giờ , chúng ta cùng tìm hiểu cách tốt hơn để hợp nhất hai từ điển:
Cách 1: Sử dụng phương pháp update
Từ điển có một phương thức update() kết hợp từ điển với các mục từ từ điển khác tại chỗ và ghi đè các khóa hiện có.
d4 = d1.copy ()
d4.update (d2)
in (d4)
Ouput:
{'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoaky': 'Washington DC',
'Phap': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Cách 2: Sử dụng toán tử giải nén(**):
Chúng ta có thể hợp nhất 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)
Ouput:
{'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoaky': 'Washington DC',
'Pháp': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Chúng ta cũng có thể hợp nhất nhiều từ điển bằng phương pháp này.
{** dict1, ** dict2, ** dict3}
Cách 3: Sử dụng collections. ChainMap.
Đây có lẽ là phương pháp ít được biết đến nhất để hợp nhất từ điển.
from collections import ChainMap
d6 = ChainMap(d1, d2)
print(d6)
Ouput:
ChainMap({'Canada': 'otawoa',
'Ando': 'Niudeli',
'Hoaky': 'Washington D. C.'},
{'Phap': '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ư cách chúng ta sẽ sử dụng bất kỳ từ điển nào khác.Ví dụ d6[’Ando’]
sẽ trở lại 'Niudeli’
.
Tuy nhiên, trong trường hợp có cùng khóa 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.
x = {'A': 1, 'B': 2}
y = {'B': 10, 'C': 20}
z = ChainMap (x, y)
z ['B']
outputs 2
Cách 4: Giải nén từ từ điển thứ hai.
Chúng ta có thể hợp nhất các từ từ điển bằng cách giải nén từ điển thứ hai.
in d7 = dict (d1, ** d2)
(d7)
Ouput
{'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoa Kỳ': 'Washington DC',
'Phap': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Tuy nhiên, phương pháp này chỉ hoạt động nếu các khóa của từ điển thứ hai là các chuỗi.
x = {1: 'A', 2: 'B'}
y = {3: 'C', 4: 'D'}
z = dict (x, ** y)
Ouput:
TypeError : đối số từ khóa phải là chuỗi
Cách 5: Sử dụng toán tử operator.
Python 3.9 đã giới thiệu toán tử operator (|) trong dict .
Sử dụng toán tử operator, chúng ta có thể kết hợp từ điển trong một dòng code.
d8 = d1 |
in d2 (d8)
Ouput:
{'Ando': 'Niudeli',
'Canada': 'otawoa',
'Hoaky': 'Washington DC',
'Phap': 'Paris',
'Malaysia': 'Kuala Lumpur'}
Kết:
Mong là các bạn cũng sẽ thấy bài viết hữu ích, chúc các bạn thành công! Nếu có thắc mắc hay ý kiến bổ sung, các bạn hãy để lại comment phía dưới nha <3