Python: Làm thế nào để hợp nhất nhiều từ điển?
Vấn đề: Giả sử, bạn đã có một danh sách các từ điển:: Say, you’ve got a list of dictionaries:
[{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}]
Lưu ý cách từ điển đầu tiên và cuối cùng mang cùng một khóa 'a'
.
Làm thế nào để bạn hợp nhất tất cả các từ điển đó thành một từ điển để có được từ sau?
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Lưu ý cách giá trị của khóa trùng lặp 'a'
là giá trị của cái cuối cùng và không phải là dict đầu tiên trong danh sách các dicts.
Để hợp nhất nhiều từ điển, cách pythonic nhất là sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại lần đầu tiên trên tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] trong mỗi từ điển.
Hãy cùng khám phá tất cả các tùy chọn có sẵn trong bài viết còn lại:
Bài tập: Chạy mã Phương pháp mà phương thức nào tạo ra một đầu ra khác với tất cả các phương pháp khác?: Run the code—which method generates a different output than all the other methods?
- Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
- Phương pháp 2: Vòng lặp lồng nhau đơn giản
- Phương pháp 3: Sử dụng phương thức Update []
- Phương pháp 4: Giải nén từ điển
- Phương pháp 5: Sử dụng Chainmap với việc giải nén
- Đi đâu từ đây?
Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
Bạn có thể sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại trước tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] các cặp trong mỗi từ điển.
- Tạo một từ điển mới bằng cách sử dụng ký hiệu
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
3. - Đi qua tất cả các từ điển trong danh sách từ điển
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
0 bằng cách sử dụng vòng lặp bên ngoài{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
5. - Đi qua tất cả [khóa, giá trị] các cặp trong từ điển hiện tại
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
6 bằng cách sử dụng phương thức{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
7 trả về một cặp [khóa, giá trị]. - Điền vào từ điển mới bằng [khóa, giá trị] các cặp
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
8 bằng cách sử dụng cú pháp hiểu từ điển chung{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
9.
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}] d = {k:v for x in l for k,v in x.items[]} print[d] # {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Đây là cách pythonic nhất để hợp nhất nhiều từ điển thành một từ và nó hoạt động cho một số lượng từ điển tùy ý.
Phương pháp 2: Vòng lặp lồng nhau đơn giản
Phương pháp 3: Sử dụng phương thức Update []
- Phương pháp 4: Giải nén từ điển
- Phương pháp 5: Sử dụng Chainmap với việc giải nén
- Đi đâu từ đây?
- Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}] d = {} for dictionary in l: for k, v in dictionary.items[]: d[k] = v print[d] {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Bạn có thể sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại trước tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] các cặp trong mỗi từ điển.
Tạo một từ điển mới bằng cách sử dụng ký hiệu
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}3.
Phương pháp 3: Sử dụng phương thức Update []
Phương pháp 4: Giải nén từ điển
- Phương pháp 4: Giải nén từ điển
- Phương pháp 5: Sử dụng Chainmap với việc giải nén
- Đi đâu từ đây?
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}] d = {} for dictionary in l: d.update[dictionary] print[d] # {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
Phương pháp 4: Giải nén từ điển
Phương pháp 5: Sử dụng Chainmap với việc giải nén
Đi đâu từ đây?
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}] d = {**l[0], **l[1], **l[2], **l[3], **l[4]} print[d] # {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
Bạn có thể sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại trước tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] các cặp trong mỗi từ điển.
Tạo một từ điển mới bằng cách sử dụng ký hiệu {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
3.: you cannot use dictionary unpacking in dictionary comprehension to alleviate this problem—Python will throw a SyntaxError!
Phương pháp 5: Sử dụng Chainmap với việc giải nén
Đi đâu từ đây?
l = [{'a': 0}, {'b': 1}, {'c': 2}, {'d': 3}, {'e': 4, 'a': 4}] from collections import ChainMap d = dict[ChainMap[*l]] print[d] # {'e': 4, 'a': 0, 'd': 3, 'c': 2, 'b': 1}
Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
Bạn có thể sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại trước tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] các cặp trong mỗi từ điển.
Đi đâu từ đây?
Phương pháp 1: Hiểu từ điển với bối cảnh lồng nhau
Bạn có thể sử dụng khả năng hiểu từ điển {k:v for x in l for k,v in x.items[]}
để lặp lại trước tất cả các từ điển trong danh sách ____10 và sau đó lặp lại tất cả [khóa, giá trị] các cặp trong mỗi từ điển.
Tạo một từ điển mới bằng cách sử dụng ký hiệu
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}3.
Đi qua tất cả các từ điển trong danh sách từ điển {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
0 bằng cách sử dụng vòng lặp bên ngoài {'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
5.
Đi qua tất cả [khóa, giá trị] các cặp trong từ điển hiện tại
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}6 bằng cách sử dụng phương thức
{'a': 4, 'b': 1, 'c': 2, 'd': 3, 'e': 4}7 trả về một cặp [khóa, giá trị].
Nếu câu trả lời của bạn là có !, Hãy xem xét việc trở thành một nhà phát triển tự do Python! Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện các kỹ năng trăn của bạn, ngay cả khi bạn là người mới bắt đầu hoàn toàn.YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi Làm thế nào để xây dựng kỹ năng thu nhập cao của bạn Python và tìm hiểu cách tôi phát triển kinh doanh mã hóa của mình trực tuyến và làm thế nào bạn có thể, từ sự thoải mái của bạn riêng nhà.
Tham gia hội thảo trên web miễn phí ngay bây giờ!
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.