Các khóa chung trong nhiều từ điển python

Từ điển là một trong những cấu trúc dữ liệu cơ bản và được sử dụng nhiều nhất trong lập trình python. Trường hợp bạn muốn kết hợp hai hoặc nhiều từ điển trong khi lập trình với python không phải là hiếm gặp. Trong bài viết này, chúng ta sẽ nghiên cứu nhiều cách khác nhau để hợp nhất hai từ điển trong các tình huống khác nhau cùng với ví dụ và đầu ra. Nhưng trước đó, chúng ta hãy xem sơ qua về từ điển trong python bên dưới

Từ điển trong Python là gì?

Từ điển là một tập hợp các thành phần dữ liệu không theo thứ tự được lưu trữ trong các cặp khóa-giá trị, không giống như bất kỳ cấu trúc dữ liệu nào khác chứa dữ liệu dưới dạng một thành phần giá trị. Bạn có thể tạo từ điển bằng cách đặt cặp khóa-giá trị bên trong dấu ngoặc nhọn ({}) được phân tách bằng dấu phẩy (,). Ngoài ra, các phần tử khóa và giá trị được phân tách bằng cách đặt dấu chấm phẩy (. ) giữa họ. Từ điển trong python được sắp xếp theo thứ tự, có thể thay đổi và không cho phép trùng lặp. Điều đó có nghĩa là từ điển không thể có hai mục có cùng khóa; . Ngoài ra, các khóa trong từ điển phân biệt chữ hoa chữ thường;

Để tìm hiểu thêm về từ điển trong python, hãy truy cập bài viết của chúng tôi “Danh sách so với Từ điển. ”

Ví dụ

sample_dict = { "Language_1": "Python", "Langauge_2": "C++", "Language_3": "Java" } print(sample_dict)

 

đầu ra

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'}

 

Làm cách nào để hợp nhất từ ​​điển trong Python?

Dưới đây là tám phương pháp tiêu chuẩn mà bạn có thể hợp nhất hai từ điển trong python

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

Bạn có thể hợp nhất hai từ điển trong python bằng phương thức update(). Sử dụng phương pháp này, từ điển đầu tiên được hợp nhất với từ điển khác bằng cách ghi đè lên nó. Do đó, không có từ điển mới nào được tạo và nó trả về Không có. Nếu cả hai từ điển chứa cùng một khóa và giá trị khác nhau, thì đầu ra cuối cùng sẽ ghi đè lên giá trị của từ điển sau. Hãy xem ví dụ dưới đây để hiểu rõ hơn về phương thức update()

Ví dụ

dict_1 = {'John': 15, 'Rick': 10, 'Misa' : 12 } dict_2 = {'Bonnie': 18,'Rick': 20,'Matt' : 16 } dict_1.update(dict_2) print('Updated dictionary:') print(dict_1)

 

đầu ra

{'John': 15, 'Rick': 20, 'Misa': 12, 'Bonnie': 18, 'Matt': 16}

 

2) Sử dụng hợp nhất (. ) nhà điều hành

Bạn có thể hợp nhất hai từ điển bằng cách sử dụng. nhà điều hành. Đây là một phương pháp rất thuận tiện để hợp nhất các từ điển; . 9 phiên bản trở lên

Ví dụ

def Merge(dict_1, dict_2): result = dict_1 | dict_2 return result # Driver code dict_1 = {'John': 15, 'Rick': 10, 'Misa' : 12 } dict_2 = {'Bonnie': 18,'Rick': 20,'Matt' : 16 } dict_3 = Merge(dict_1, dict_2) print(dict_3)

đầu ra

{'John': 15, 'Rick': 20, 'Misa': 12, 'Bonnie': 18, 'Matt': 16}

 

3) Sử dụng toán tử **

Cách đơn giản nhất để hợp nhất hai từ điển trong python là sử dụng toán tử giải nén(**). Bằng cách áp dụng toán tử "**" cho từ điển, nó mở rộng nội dung của nó là tập hợp các cặp khóa-giá trị

Ví dụ: nếu bạn áp dụng "**" cho dict_1 như hình bên dưới, đầu ra sẽ thu thập các cặp khóa-giá trị được lưu trữ bên trong dict_1

Ví dụ

dict_1 = {'John': 15, 'Rick': 10, 'Misa': 12} print(dict(**dict_1))

 

đầu ra

{'John': 15, 'Rick': 10, 'Misa': 12}

 

Bây giờ, để kết hợp hai từ điển bằng cách sử dụng "**", chúng tôi sẽ sử dụng một từ điển bổ sung để lưu trữ đầu ra cuối cùng. Nội dung của dict_1 và dict_2 sẽ mở rộng bằng cách sử dụng toán tử "**" và kết hợp để tạo thành dict_3. Tương tự như phương pháp cập nhật, nếu cả hai từ điển có cùng một khóa với các giá trị khác nhau, thì đầu ra cuối cùng sẽ chứa giá trị của từ điển thứ hai. Hãy xem ví dụ dưới đây để hiểu hoạt động của toán tử "**"

Ví dụ

________số 8

 

đầu ra

{'John': 15, 'Rick': 20, 'Misa': 12, 'Bonnie': 18, 'Matt': 16}

 

Bạn cũng có thể hợp nhất ba từ điển cùng lúc bằng cách sử dụng toán tử “**”, như minh họa trong ví dụ bên dưới

Ví dụ

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 0

 

đầu ra

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 1

 

4) Giải nén từ điển thứ hai

Giải nén từ điển thứ hai bằng toán tử "**" sẽ giúp bạn hợp nhất hai từ điển và nhận kết quả cuối cùng. Tuy nhiên, phương pháp này không được sử dụng nhiều và khuyến nghị vì nó sẽ chỉ hoạt động nếu các khóa của từ điển thứ hai là các chuỗi bắt buộc. Nếu gặp phải bất kỳ giá trị int nào, thì nó sẽ đưa ra phương thức "TypeError"

Ví dụ

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 2

 

đầu ra

{'John': 15, 'Rick': 20, 'Misa': 12, 'Bonnie': 18, 'Matt': 16}

 

5) Sử dụng bộ sưu tập. Phương thức ChainMap()

Đây là một trong những phương pháp ít được biết đến nhất để hợp nhất hai từ điển trong python. Trong phương pháp này, bạn phải sử dụng mô-đun bộ sưu tập từ thư viện ChainMap sẽ giúp bạn nhóm nhiều từ điển trong một chế độ xem. Nếu cả hai từ điển chứa cùng một khóa/s, thì giá trị của từ điển đầu tiên được tìm nạp trong đầu ra cuối cùng. Lưu ý rằng chúng tôi sẽ sử dụng tùy chọn “nhập. từ. ” cú pháp để nhập mô-đun bộ sưu tập như trong ví dụ bên dưới

Ví dụ

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 4

 

đầu ra

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 5

 

6) Sử dụng itertools. chuỗi()

Trình lặp trả về phần tử từ lần lặp đầu tiên cho đến khi nó trống và sau đó chuyển sang lần lặp tiếp theo. Về cơ bản, nó sẽ xử lý chuỗi liên tiếp dưới dạng một chuỗi duy nhất

Vì từ điển cũng có thể lặp lại, chúng ta có thể sử dụng hàm chain() từ lớp itertools và hợp nhất hai từ điển. Kiểu trả về của phương thức này sẽ là một đối tượng và do đó, chúng ta có thể chuyển đổi từ điển bằng hàm tạo dict()

Ví dụ

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 6

 

đầu ra

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 7

 

7) Sử dụng từ điển hiểu

Chúng ta có thể kết hợp hai từ điển trong python bằng cách sử dụng khả năng hiểu từ điển. Ở đây, chúng tôi cũng sử dụng vòng lặp for để lặp qua các mục từ điển và hợp nhất chúng để có kết quả cuối cùng. Nếu cả hai từ điển đều có khóa chung, thì đầu ra cuối cùng sử dụng phương thức này sẽ chứa giá trị của từ điển thứ hai. Xem ví dụ dưới đây để hiểu rõ hơn

Ví dụ

{'Language_1': 'Python', 'Langauge_2': 'C++', 'Language_3': 'Java'} 8

 

đầu ra

{'John': 15, 'Rick': 20, 'Misa': 12, 'Bonnie': 18, 'Matt': 16}

 

8) Thêm giá trị của các khóa chung

Trong tất cả các phương pháp trên, nếu cả hai từ điển chứa giá trị dữ liệu khác nhau của cùng một khóa, thì các giá trị trong đầu ra cuối cùng sẽ bị ghi đè. Điều gì sẽ xảy ra nếu bạn muốn giữ nguyên tất cả giá trị trong đầu ra cuối cùng. Với mục đích này, bạn có thể hợp nhất các từ điển sao cho nó thêm các giá trị của các khóa chung trong danh sách và trả về kết quả cuối cùng

Trong phương pháp này, chúng ta cũng sẽ sử dụng vòng lặp for để duyệt qua các khóa và giá trị trong từ điển bên trong hàm. Sau đó, chúng ta sẽ gọi hàm để lấy đầu ra cuối cùng là các từ điển được hợp nhất như hình bên dưới

Ví dụ

dict_1 = {'John': 15, 'Rick': 10, 'Misa' : 12 } dict_2 = {'Bonnie': 18,'Rick': 20,'Matt' : 16 } dict_1.update(dict_2) print('Updated dictionary:') print(dict_1) 0

 

đầu ra

dict_1 = {'John': 15, 'Rick': 10, 'Misa' : 12 } dict_2 = {'Bonnie': 18,'Rick': 20,'Matt' : 16 } dict_1.update(dict_2) print('Updated dictionary:') print(dict_1) 1

 

Sự kết luận

Làm việc với nhiều từ điển là một trong những tình huống phổ biến khi lập trình trong python. Nhưng việc kết hợp một hoặc nhiều từ điển thường là một nhiệm vụ khó khăn nếu bạn không biết các kỹ thuật để làm điều tương tự. Do đó, chúng tôi đã trình bày các phương pháp khác nhau để bạn có thể hợp nhất từ ​​điển trong python trong các điều kiện khác nhau. Tuy nhiên, nếu bạn gặp bất kỳ khó khăn nào, hãy liên hệ với các gia sư viết mã trực tiếp để giải tỏa nghi ngờ của bạn

Hai từ điển có thể có cùng khóa không?

Không, mỗi khóa trong từ điển phải là duy nhất. Bạn không thể có hai khóa có cùng giá trị . Cố gắng sử dụng lại cùng một khóa sẽ chỉ ghi đè lên giá trị được lưu trữ trước đó. Nếu một khóa cần lưu trữ nhiều giá trị thì giá trị được liên kết với khóa phải là một danh sách hoặc một từ điển khác.

Bạn có thể có cùng một khóa hai lần trong từ điển Python không?

Từ điển Python không hỗ trợ khóa trùng lặp . Một cách khác là lưu trữ danh sách hoặc bộ bên trong từ điển.

Chủ đề