Python đếm các phần tử giống nhau trong hai danh sách

Chúng ta sẽ tìm hiểu tất cả các trường hợp so sánh danh sách có thể xảy ra trong Python. Chúng tôi cũng sẽ tìm hiểu các phương pháp khác nhau cho cùng một mục đích

    Mục lục

So sánh nếu 2 danh sách bằng nhau với cùng một thứ tự

Để so sánh một cái gì đó trong Python, chúng tôi sử dụng toán tử

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
2 hoặc toán tử
# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
3

  1. == [bằng] - Nó so sánh 2 giá trị và trả về
    # Method 2: For loop
    list1 = [1, 2, 3, 4, 5]
    list2 = [1, 2, 3, 4, 5]
    
    for i in range[len[list1]]:
        if list1[i] != list2[i]:
            print[False]
            break
    else:
        print[True]
    4 nếu cả hai giá trị bằng nhau.
  2. is [giống hệt với] - Nó so sánh 2 biến và trả về
    # Method 2: For loop
    list1 = [1, 2, 3, 4, 5]
    list2 = [1, 2, 3, 4, 5]
    
    for i in range[len[list1]]:
        if list1[i] != list2[i]:
            print[False]
            break
    else:
        print[True]
    4 nếu cả hai biến đều trỏ đến cùng một đối tượng. Điều này có nghĩa là địa chỉ bộ nhớ của cả hai biến đều giống nhau.

Chúng ta sẽ sử dụng == vì khi sử dụng is we are comparing the memory address of 2 variables which will be different in the case of 2 different lists.

So sánh 2 danh sách cho cùng một thứ tự các mặt hàng

Phương pháp 1. == Toán tử

Chúng ta có thể sử dụng toán tử == để so sánh 2 danh sách. Nếu cả hai danh sách có cùng một phần tử theo cùng một thứ tự thì nó sẽ trả về

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
4.

# python compare two lists
# Method 1: == Operator
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]
print[list1 == list2] # True

đầu ra

True

Phương pháp 2. Sử dụng vòng lặp

Chúng ta cũng có thể sử dụng vòng lặp for để so sánh 2 danh sách

Vì chúng ta chỉ phải kiểm tra xem phần tử ở vị trí bất kỳ trong list1 có bằng phần tử ở cùng vị trí trong list2 hay không, nên . Chúng ta có thể so sánh nó trong một lần lặp lại.

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]

đầu ra

True

So sánh nếu 2 danh sách bằng nhau bất kể thứ tự

Khi bạn so sánh 2 danh sách bất kể thứ tự của các thành phần trong danh sách, nó sẽ trở thành một nhiệm vụ phức tạp. Bây giờ bạn không thể đánh đồng 2 danh sách và kiểm tra xem chúng có bằng nhau không

Để so sánh các danh sách bây giờ bạn có 2 cách tiếp cận

  1. Sắp xếp cả hai danh sách và sau đó so sánh chúng
  2. So sánh từng phần tử của list1 với từng phần tử của list2 and check if they exist in both lists.
báo cáo quảng cáo này

So sánh 2 danh sách cho một thứ tự khác nhau của các mặt hàng

Phương pháp 1. Sắp xếp cả hai danh sách

Sắp xếp cả hai danh sách. Điều này sẽ làm cho danh sách theo cùng một thứ tự nếu chúng có cùng các phần tử

Bây giờ, chỉ cần so sánh cả hai danh sách bằng cách sử dụng toán tử == .

# Method 1
list1 = [4, 1, 5, 2, 3]
list2 = [3, 5, 2, 1, 4]

# Sort both the lists
list1.sort[]
list2.sort[]

# Compare both the lists
print[list1 == list2]

đầu ra

True

Phương pháp 2. So sánh phần tử riêng lẻ

Một cách tiếp cận khác là so sánh từng phần tử của list1 với từng phần tử của list2 and check if they exist in both lists.

Trước khi so sánh các phần tử, trước tiên hãy kiểm tra xem cả hai danh sách có cùng độ dài không. Nếu chúng không có cùng độ dài thì đơn giản là chúng không bằng nhau

Chúng ta sẽ tạo một hàm ở đây sẽ lấy 2 danh sách làm đối số và thực hiện so sánh

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
1

đầu ra

True

Nhận giao điểm của 2 danh sách

Tìm giao điểm của 2 danh sách tức là tìm tất cả các phần tử có mặt trong cả 2 danh sách

Có nhiều cách để tìm giao điểm của 2 danh sách. Cách phổ biến nhất để có các giao điểm là sử dụng cấu trúc dữ liệu set .

Phương pháp 1. Tìm giao lộ bằng cách sử dụng tập hợp

A set bao gồm các phần tử duy nhất. Vì vậy, nếu lấy một tập hợp danh sách thì nó sẽ trả về các phần tử duy nhất của danh sách.

Để tìm giao điểm của các danh sách, bạn có thể lấy một tập hợp cả hai danh sách và sử dụng toán tử & để tìm giao điểm.

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
3

đầu ra

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
4

Cả

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
7 hoặc
# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
8 sẽ trả về cùng một kết quả

Bạn cũng có thể sử dụng phương thức intersection[] của set class to find intersections.

True
0

đầu ra

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
4

Phương pháp 2. Tìm giao lộ bằng cách sử dụng hiểu danh sách

Một cách khác để tìm giao điểm của 2 danh sách là sử dụng khả năng hiểu danh sách

Khi hiểu danh sách, chúng ta sẽ sử dụng điều kiện if để kiểm tra xem một phần tử có tồn tại trong cả hai danh sách hay không.

True
2

đầu ra

True
3

Ngoài ra, bạn có thể sử dụng vòng lặp for để tìm giao lộ.

Vòng lặp cũng sẽ tuân theo logic tương tự như hiểu danh sách

True
4

đầu ra

True
3

Lấy sự khác biệt của 2 danh sách

Tìm sự khác biệt của các phần tử từ danh sách thứ nhất đến danh sách thứ hai nghĩa là tìm tất cả các phần tử có trong danh sách thứ nhất nhưng không có trong danh sách thứ hai

Để biết sự khác biệt giữa 2 danh sách, bạn có thể sử dụng cấu trúc dữ liệu set và sử dụng - . operator to find the difference.

True
6

đầu ra

True
7

Sự khác biệt giữa list1 với list2list2 to list1 will be different.

Bạn cũng có thể sử dụng phương thức difference[] của set class to find differences.

True
8

đầu ra

True
7

So sánh xem 2 danh sách có bằng nhau không

Giả sử danh sách của bạn chứa các giá trị chuỗi và bạn muốn so sánh xem 2 danh sách có bằng nhau không, bỏ qua chữ hoa chữ thường

Để làm điều này, bạn có thể sử dụng lớp str để chuyển đổi tất cả các giá trị chuỗi thành chữ thường và sau đó sử dụng == operator to compare [If elements are not in the same order then you can use the methods discussed above].

# Method 2: For loop
list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5]

for i in range[len[list1]]:
    if list1[i] != list2[i]:
        print[False]
        break
else:
    print[True]
0

đầu ra

True

Phần kết luận

Trong bài viết này, chúng ta đã thảo luận về nhiều cách Python so sánh hai danh sách. Ta đã từng gặp các trường hợp như so sánh 2 danh sách, tìm giao điểm, tìm điểm khác biệt và so sánh 2 danh sách bỏ qua trường hợp

Chủ Đề