Hướng dẫn compare 2 list python - so sánh 2 danh sách python

Trong bài viết này, chúng tôi sẽ hiểu các cách khác nhau để so sánh hai danh sách trong Python. Chúng ta thường bắt gặp các tình huống trong đó chúng ta cần so sánh các giá trị của các mục dữ liệu được lưu trữ trong bất kỳ cấu trúc nào nói danh sách, tuple, chuỗi, v.v.compare two lists in Python. We often come across situations wherein we need to compare the values of the data items stored in any structure say list, tuple, string, etc.

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
0 là phương pháp kiểm tra các mục dữ liệu của danh sách chống lại sự bình đẳng với các mục dữ liệu của danh sách khác.


Phương pháp so sánh hai danh sách trong Python

Chúng tôi có thể sử dụng một trong các phương pháp sau để thực hiện so sánh của chúng tôi:

  • Hàm giảm () và map ()
  • Chức năng thu gom.cunt ()
  • Hàm python sort () cùng với == toán tử
  • Hàm python set () cùng với == toán tử
  • Hàm khác biệt ()

1. Hàm giảm python () và map ()

Chúng ta có thể sử dụng hàm python map () cùng với hàm functools.reduce () để so sánh các mục dữ liệu của hai danh sách.along with functools.reduce() function to compare the data items of two lists.

Phương thức

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
1 chấp nhận một hàm và một điều khác nhau như danh sách, tuple, chuỗi, v.v. làm đối số.function and an iterable such as list, tuple, string, etc. as arguments.

Nó áp dụng hàm được truyền cho từng mục của IT có thể lặp lại và sau đó trả về một đối tượng bản đồ, tức là một trình lặp lại như là kết quả..

Phương pháp

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
2 áp dụng hàm được truyền cho mọi yếu tố của đầu vào có thể lặp lại theo cách đệ quy.recursive manner.

Ban đầu, nó sẽ áp dụng hàm trên phần tử thứ nhất và phần hai và trả về kết quả. Quá trình tương tự sẽ tiếp tục trên từng phần tử cho đến khi danh sách không còn phần tử.

Là một kết hợp, hàm map () sẽ áp dụng hàm đầu vào cho mọi phần tử và hàm giảm () sẽ đảm bảo rằng nó áp dụng chức năng theo cách liên tiếp.consecutive manner.

Example:

import functools 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [10, 20, 30, 40, 50] 

if functools.reduce(lambda x, y : x and y, map(lambda p, q: p == q,l1,l2), True): 
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

if functools.reduce(lambda x, y : x and y, map(lambda p, q: p == q,l1,l3), True): 
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 

Output:

The lists l1 and l2 are not the same
The lists l1 and l3 are the same

2. Phương thức Python Collection.Count ()

Phương thức Collection.Count () có thể được sử dụng để so sánh danh sách một cách hiệu quả. Hàm bộ đếm () đếm tần số của các mục trong danh sách và lưu dữ liệu làm từ điển ở định dạng:.:.

Nếu hai danh sách có cùng một đầu ra từ điển, chúng ta có thể suy ra rằng các danh sách là như nhau.

Lưu ý: Thứ tự danh sách không có hiệu lực đối với phương thức bộ đếm (). The list order has no effect on the counter() method.

Example:

import collections 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [10, 20, 30, 40, 50] 

if collections.Counter(l1) == collections.Counter(l2):
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

if collections.Counter(l1) == collections.Counter(l3):
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 

Output:

The lists l1 and l2 are not the same
The lists l1 and l3 are the same

3. Phương thức Python Sort () và == Toán tử để so sánh danh sách

Chúng ta có thể câu lạc bộ phương thức Python Sắp xếp () với toán tử == để so sánh hai danh sách.== operator to compare two lists.

Phương pháp Python

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
3 được sử dụng để sắp xếp các danh sách đầu vào với mục đích nếu hai danh sách đầu vào bằng nhau, thì các phần tử sẽ nằm ở cùng một vị trí chỉ mục.sort the input lists with a purpose that if the two input lists are equal, then the elements would reside at the same index positions.

Lưu ý: Thứ tự của danh sách không ảnh hưởng đến phương pháp này vì chúng tôi sẽ sắp xếp các danh sách trước khi so sánh. The order of the list does not affect this method because we’ll be sorting the lists before comparison.

Hơn nữa,

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
4 được sử dụng để so sánh danh sách, phần tử theo phần tử.

Example:

import collections 


l1 = [10, 20, 30, 40, 50] 
l2 = [10, 20, 30, 50, 40, 70] 
l3 = [50, 10, 30, 20, 40] 

l1.sort() 
l2.sort() 
l3.sort() 

if l1 == l3: 
    print ("The lists l1 and l3 are the same") 
else: 
    print ("The lists l1 and l3 are not the same") 


if l1 == l2: 
    print ("The lists l1 and l2 are the same") 
else: 
    print ("The lists l1 and l2 are not the same") 

Output:

The lists l1 and l3 are the same
The lists l1 and l2 are not the same

4. Phương thức Python Set () và == Toán tử để so sánh hai danh sách

Phương thức Python Set () thao tác các mục dữ liệu của một bộ điều chỉnh được sắp xếp cho một tập hợp các mục dữ liệu được sắp xếp theo thứ tự các phần tử được xem xét.sorted sequence set of data items without taking the order of elements into consideration.

Hơn nữa,

The lists l1 and l2 are not the same
The lists l1 and l3 are the same
4 được sử dụng để so sánh các mục dữ liệu của danh sách theo kiểu yếu tố.

Example:

l1 = [10, 20, 30, 40, 50] 
l3 = [50, 10, 30, 20, 40] 

a = set(l1)
b = set(l3)

if a == b:
    print("Lists l1 and l3 are equal")
else:
    print("Lists l1 and l3 are not equal")

Output:

Lists l1 and l3 are equal

5. Danh sách tùy chỉnh Python Hiểu để so sánh hai danh sách

Chúng ta có thể sử dụng khả năng hiểu danh sách Python để so sánh hai danh sách.

Example:

l1 = [10, 20, 30, 40, 50] 
l3 = [50, 75, 30, 20, 40, 69] 

res = [x for x in l1 + l3 if x not in l1 or x not in l3]

print(res)
if not res:
    print("Lists l1 and l3 are equal")
else:
    print("Lists l1 and l3 are not equal")

 

Trong mã trên, chúng tôi đặt một phần tử con trỏ ‘X, thành danh sách L1 và L3. Hơn nữa, chúng tôi kiểm tra xem phần tử được trỏ bởi phần tử con trỏ có trong danh sách.

Output:

[10, 75, 69]
Lists l1 and l3 are not equal

Sự kết luận

Do đó, trong bài viết này, chúng tôi đã đề cập và hiểu một số cách để so sánh nhiều danh sách trong Python.