HomeLập trìnhPythonCách hợp nhất...

Cách hợp nhất từ ​​điển trong Python


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_onedict_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:

  1. Sử dụng vòng lặp for
  2. Sử dụng dict.update() phương pháp
  3. Sử dụng ** nhà điều hành
  4. 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.

Đọc thêm  Cách bảo mật cơ sở hạ tầng không dây tại nhà của bạn bằng Kismet và Python

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 thêm  Python Open File – Cách đọc từng dòng một tệp văn bản

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.



Zik.vn – Biên dịch & Biên soạn Lại

Đọc thêm  Các câu lệnh thử và ngoại trừ trong Python – Cách xử lý các ngoại lệ trong Python
spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status