Python so sánh hai từ điển có cùng giá trị

Trong hướng dẫn này, chúng ta có hai từ điển và muốn tìm ra điểm chung của chúng (chẳng hạn như cùng khóa, cùng giá trị, v.v. ). Về cơ bản có một số điểm tương đồng giữa hai cuốn từ điển và bạn phải tìm ra những điểm tương đồng này thì bài viết này là hữu ích nhất. VẬY, hãy bắt đầu học cách so sánh hai từ điển trong Python và tìm điểm tương đồng giữa chúng

Điểm tương đồng giữa các từ điển trong Python

Về cơ bản Từ điển là ánh xạ giữa một bộ khóa và giá trị. Các phím hỗ trợ các hoạt động cơ bản như hợp nhất, giao điểm và khác biệt. Khi chúng ta gọi phương thức items() trong từ điển thì nó chỉ trả về cặp (key, value)

Bây giờ, hãy xem xét hai từ điển

a = {   'x' : 1,   'y' : 2,   'z' : 3 }
b = {   'w' : 10,   'x' : 11,   'y' : 2 }

Tìm khóa chung của hai từ điển trong Python

Ở đây, chúng tôi viết một đoạn mã tìm các khóa phổ biến trong hai từ điển như

a = {   'x' : 1,   'y' : 2,   'z' : 3 }
b = {   'w' : 10,   'x' : 11,   'y' : 2 } 
common_keys = a.keys() & b.keys() # intersection operation on keys
print("The common keys are :",common_keys)

đầu ra

The common keys are : {'x', 'y'}

Tìm các khóa trong từ điển A không có trong từ điển B

Bây giờ, chúng tôi đang tìm các khóa có trong từ điển a và không có trong từ điển b như

A = {   'x' : 1,   'y' : 2,   'z' : 3 }
B = {   'w' : 10,   'x' : 11,   'y' : 2 } 
diffrent_keys = A.keys() - B.keys()   
print("The key that are in A and not in B are :",diffrent_keys)

đầu ra

The key that are in A and not in B are : {'z'}

Tìm các cặp (khóa, giá trị) phổ biến trong từ điển bằng Python

Bây giờ, chúng tôi thực hiện một thao tác mà chúng tôi đang tìm cặp (khóa, giá trị) phổ biến trong cả hai từ điển như

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

________số 8

 

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

________số 8

 

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ụ

a = {   'x' : 1,   'y' : 2,   'z' : 3 }
b = {   'w' : 10,   'x' : 11,   'y' : 2 } 
common_keys = a.keys() & b.keys() # intersection operation on keys
print("The common keys are :",common_keys)
1

 

đầu ra

a = {   'x' : 1,   'y' : 2,   'z' : 3 }
b = {   'w' : 10,   'x' : 11,   'y' : 2 } 
common_keys = a.keys() & b.keys() # intersection operation on keys
print("The common keys are :",common_keys)
2

 

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ụ

a = {   'x' : 1,   'y' : 2,   'z' : 3 }
b = {   'w' : 10,   'x' : 11,   'y' : 2 } 
common_keys = a.keys() & b.keys() # intersection operation on keys
print("The common keys are :",common_keys)
3

 

đầu ra

________số 8

 

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

________số 8

 

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

________số 8

 

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

 

Phần 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

Làm cách nào để so sánh giá trị của hai từ điển có cùng khóa trong Python?

Phương thức so sánh cmp() được sử dụng trong Python để so sánh các giá trị và khóa của hai từ điển. Nếu phương thức trả về 0 nếu cả hai từ điển bằng nhau, 1 nếu dic1 > dict2 và -1 nếu dict1 < dict2.

Bạn có thể sử dụng == trên từ điển trong Python không?

Theo tài liệu python, bạn thực sự có thể sử dụng toán tử == trên từ điển .

Khi hai từ điển Python bằng nhau?

Kỹ thuật đơn giản nhất để kiểm tra xem hai hoặc nhiều từ điển có bằng nhau hay không là bằng cách sử dụng toán tử == trong Python . Bạn có thể tạo từ điển bằng bất kỳ phương thức nào được định nghĩa trong Python và sau đó so sánh chúng bằng toán tử ==. Nó sẽ trả về True các từ điển bằng và Sai nếu không.