Trong Python, từ điển là một tập hợp bạn sử dụng để lưu trữ dữ liệu trong {key:value}
cặp. Nó được sắp xếp theo thứ tự và có thể thay đổi, đồng thời không thể lưu trữ dữ liệu trùng lặp.
Chúng tôi viết một từ điển sử dụng dấu ngoặc nhọn như thế này:
my_dict = {
"id": 1,
"name": "Ashutosh",
"books": ["Python", "DSA"]
}
Đôi khi, chúng ta cần hợp nhất hai hoặc nhiều từ điển để tạo ra một từ điển lớn hơn. Ví dụ:
dict_one = {
"id": 1,
"name": "Ashutosh",
"books": ["Python", "DSA"]
}
dict_two = {
"college": "NSEC",
"city": "Kolkata",
"country": "India"
}
merged_dict = {
"id": 1,
"name": "Ashutosh",
"books": ["Python", "DSA"],
"college": "NSEC",
"city": "Kolkata",
"country": "India"
}
bên trong merged_dict
chúng tôi có các cặp khóa-giá trị của cả hai dict_one
và dict_two
. Đây là những gì chúng tôi muốn đạt được theo chương trình.
Có nhiều cách chúng ta có thể làm điều này trong Python:
- Sử dụng vòng lặp for
- Sử dụng
dict.update()
phương pháp - Sử dụng
**
nhà điều hành - Sử dụng
|
Toán tử (Union) (dành cho Python 3.9 trở lên)
Hãy lần lượt khám phá từng cách.
Cách hợp nhất từ điển trong Python bằng vòng lặp For
Chúng ta có thể hợp nhất hai hoặc nhiều từ điển bằng cách sử dụng vòng lặp như sau:
>>> dict_one = {
... "id": 1,
... "name": "Ashutosh",
... }
>>> dict_two = {
... "books": ["Python", "DSA"],
... "college": "NSEC",
... }
>>> dict_three = {
... "city": "Kolkata",
... "country": "India"
... }
>>> for key,value in dict_two.items():
... merged_dict[key] = value
...
>>> merged_dict
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC'}
>>> for key,value in dict_three.items():
... merged_dict[key] = value
...
>>> merged_dict
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC', 'city': 'Kolkata', 'country': 'India'}
Nhưng vấn đề với phương pháp này là chúng ta cần chạy rất nhiều vòng lặp để hợp nhất các từ điển.
Vì vậy, một lựa chọn khác là gì?
Cách hợp nhất từ điển trong Python bằng cách sử dụng dict.update()
Phương pháp
Nếu bạn khám phá dict
lớp, có nhiều phương thức bên trong nó. Một phương pháp như vậy là update()
phương thức mà bạn có thể sử dụng để hợp nhất từ điển này sang từ điển khác.
>>> dict_one = {
... "id": 1,
... "name": "Ashutosh",
... "books": ["Python", "DSA"]
... }
>>> dict_two = {
... "college": "NSEC",
... "city": "Kolkata",
... "country": "India"
... }
>>> dict_one.update(dict_two)
>>> dict_one
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC', 'city': 'Kolkata', 'country': 'India'}
Nhưng vấn đề khi chúng ta sử dụng update()
phương pháp là nó sửa đổi một trong các từ điển. Nếu chúng tôi muốn tạo từ điển thứ ba mà không sửa đổi bất kỳ từ điển nào khác, chúng tôi không thể sử dụng phương pháp này.
Ngoài ra, bạn chỉ có thể sử dụng phương pháp này để hợp nhất hai từ điển cùng một lúc. Nếu bạn muốn hợp nhất ba từ điển, trước tiên bạn cần hợp nhất hai từ điển đầu tiên, sau đó hợp nhất từ điển thứ ba với từ điển đã sửa đổi.
>>> dict_one = {
... "id": 1,
... "name": "Ashutosh",
... }
>>> dict_two = {
... "books": ["Python", "DSA"],
... "college": "NSEC",
... }
>>> dict_three = {
... "city": "Kolkata",
... "country": "India"
... }
>>> dict_one.update(dict_two)
>>> dict_one
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC'}
>>> dict_one.update(dict_three)
>>> dict_one
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC', 'city': 'Kolkata', 'country': 'India'}
Hãy khám phá một số tùy chọn khác.
Cách hợp nhất từ điển trong Python bằng cách sử dụng **
nhà điều hành
Bạn có thể sử dụng phương pháp dấu hoa thị kép (**) để giải nén hoặc mở rộng từ điển như thế này:
>>> dict_one = {
... "id": 1,
... "name": "Ashutosh",
... }
>>> dict_two = {
... "books": ["Python", "DSA"]
... "college": "NSEC",
... }
>>> dict_three = {
... "city": "Kolkata",
... "country": "India"
... }
>>> merged_dict = {**dict_one, **dict_two, **dict_three}
>>> merged_dict
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC', 'city': 'Kolkata', 'country': 'India'}
Sử dụng **
để hợp nhất các từ điển không ảnh hưởng đến bất kỳ từ điển nào.
Cách hợp nhất từ điển trong Python bằng cách sử dụng |
Nhà điều hành
Bắt đầu với Python 3.9, chúng ta có thể sử dụng Union ( |
) để hợp nhất hai hoặc nhiều từ điển.
>>> dict_one = {
... "id": 1,
... "name": "Ashutosh",
... }
>>> dict_two = {
... "books": ["Python", "DSA"],
... "college": "NSEC",
... }
>>> dict_three = {
... "city": "Kolkata",
... "country": "India"
... }
>>> merged_dict = dict_one | dict_two | dict_three
>>> merged_dict
{'id': 1, 'name': 'Ashutosh', 'books': ['Python', 'DSA'], 'college': 'NSEC', 'city': 'Kolkata', 'country': 'India'}
Đây là phương pháp thuận tiện nhất hiện có để hợp nhất các từ điển trong Python.
Phần kết luận
Chúng tôi đã khám phá một số phương pháp khác nhau để hợp nhất từ điển. Nếu bạn có Python 3.9 trở lên, bạn nên sử dụng |
nhà điều hành. Nhưng nếu bạn sử dụng các phiên bản Python cũ hơn, bạn vẫn có thể sử dụng các phương pháp khác đã thảo luận ở trên.