Làm cách nào để kiểm tra xem hai bộ có cùng phần tử trong python không?

Cách cơ bản để kiểm tra xem hai danh sách có các phần tử chung hay không là sử dụng duyệt danh sách trong Python. Bạn có thể kiểm tra khớp đơn hoặc khớp tất cả phần tử giữa 2 danh sách

Python kiểm tra xem hai danh sách có phần tử chung không

Mã ví dụ đơn giản khi đưa ra hai danh sách a, b. Kiểm tra xem hai danh sách có ít nhất một phần tử chung trong đó hay tất cả các phần tử đều giống nhau

Kiểm tra xem hai danh sách có chung ít nhất một phần tử không

Sử dụng vòng lặp

def common_ele(list1, list2):
    res = False

    # traverse in the 1st list
    for x in list1:

        # traverse in the 2nd list
        for y in list2:

            # if one common
            if x == y:
                res = True
                return res

    return res


a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 5]
print(common_ele(a, b))

Sử dụng Đặt giao lộ

bộ. giao lộ sẽ tìm thấy bất kỳ phần tử chung nào

def common_ele(list1, list2):
    a_set = set(a)
    b_set = set(b)
    if len(a_set.intersection(b_set)) > 0:
        return True
    return False


a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 5]
print(common_ele(a, b))

đầu ra. Thật

Kiểm tra xem danh sách Python có chứa tất cả các phần tử của danh sách khác không

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

List1 = ['python', 'JS', 'c#', 'go', 'c', 'c++']
List2 = ['c#', 'Java', 'python']

check = all(item in List1 for item in List2)

if check:
    print("Both list same")
else:
    print("No, lists are not same.")

đầu ra

Làm cách nào để kiểm tra xem hai bộ có cùng phần tử trong python không?

Hãy bình luận nếu bạn có bất kỳ nghi ngờ và đề xuất nào về chủ đề danh sách Python này

Ghi chú. IDE. PyCharm 2021. 3. 3 (Phiên bản cộng đồng)

cửa sổ 10

Trăn 3. 10. 1

Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp

Làm cách nào để kiểm tra xem hai bộ có cùng phần tử trong python không?

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật

Trong khi lập trình bằng python, việc so sánh phải được thực hiện rất thường xuyên để kiểm tra các điều kiện khác nhau. Chúng ta có thể cần so sánh hai biến hoặc hai nhóm biến để kiểm tra một điều kiện. Trong bài viết này, chúng tôi sẽ thử các cách khác nhau để so sánh hai danh sách trong python. Trong khi so sánh, chúng ta sẽ phải kiểm tra xem cả hai danh sách có chứa các phần tử giống nhau hay không bất kể thứ tự các phần tử có trong danh sách. Theo đó, chúng ta sẽ phải in kết quả

So sánh hai danh sách bằng phương thức sort()

Để kiểm tra xem hai danh sách có chứa các phần tử giống nhau hay không, chúng ta có thể sử dụng phương thức sort() để sắp xếp các phần tử của danh sách trước. Sau đó, chúng ta có thể so sánh hai danh sách

Để so sánh, đầu tiên chúng ta sẽ kiểm tra xem độ dài của các danh sách có bằng nhau hay không. Nếu độ dài không bằng nhau, các danh sách sẽ tự động được coi là khác nhau.  

Làm cách nào để kiểm tra xem hai bộ có cùng phần tử trong python không?

Nếu độ dài của các danh sách bằng nhau, chúng tôi sẽ sắp xếp hai danh sách. Sau đó, chúng ta sẽ so sánh các danh sách bằng toán tử == để kiểm tra xem các danh sách có bằng nhau hay không. Nếu các danh sách được sắp xếp bằng nhau, nó sẽ xác định rằng cả hai danh sách ban đầu đều chứa các phần tử giống nhau. Điều này có thể được thực hiện như sau

# function to compare lists
def compare(l1, l2):
    # here l1 and l2 must be lists
    if len(l1) != len(l2):
        return False
    l1.sort()
    l2.sort()
    if l1 == l2:
        return True
    else:
        return False


list1 = [1, 2, 3, 4]
list2 = [1, 4, 3, 2]
list3 = [2, 3, 4, 5]
print("list1 is:",list1)
print("list2 is:",list2)
print("list3 is:",list3)

# comparing list1 and list 2
print("list1 and list2 contain same elements:",compare(list1, list2))
#comparing list2 and list3
print("list1 and list3 contain same elements:",compare(list1, list3))

đầu ra

list1 is: [1, 2, 3, 4]
list2 is: [1, 4, 3, 2]
list3 is: [2, 3, 4, 5]
list1 and list2 contain same elements: True
list1 and list3 contain same elements: False

So sánh bằng cách sử dụng các bộ trong Python

Để so sánh hai danh sách trong python, chúng ta có thể sử dụng bộ. Một bộ trong python chỉ cho phép các giá trị duy nhất trong đó. Chúng ta có thể sử dụng thuộc tính này của tập hợp để tìm xem hai danh sách có cùng phần tử hay không

Để so sánh, đầu tiên chúng ta sẽ kiểm tra xem độ dài của các danh sách có bằng nhau hay không. Nếu độ dài không bằng nhau, các danh sách sẽ tự động được gắn cờ là khác nhau

Sau đó, chúng ta sẽ chuyển đổi các danh sách thành các bộ bằng hàm tạo set(). Chúng ta có thể so sánh hai tập hợp bằng toán tử == để kiểm tra xem cả hai tập hợp có bằng nhau hay không. Nếu cả hai bộ bằng nhau, thì sẽ xác định rằng cả hai danh sách đều chứa các giá trị bằng nhau. Ví dụ sau minh họa khái niệm này

# function to compare lists
def compare(l1, l2):
    # here l1 and l2 must be lists
    if len(l1) != len(l2):
        return False
    set1 = set(l1)
    set2 = set(l2)
    if set1 == set2:
        return True
    else:
        return False


list1 = [1, 2, 3, 4]
list2 = [1, 4, 3, 2]
list3 = [2, 3, 4, 5]
print("list1 is:", list1)
print("list2 is:", list2)
print("list3 is:", list3)

# comparing list1 and list 2
print("list1 and list2 contain same elements:", compare(list1, list2))
# comparing list2 and list3
print("list1 and list3 contain same elements:", compare(list1, list3))

đầu ra

list1 is: [1, 2, 3, 4]
list2 is: [1, 4, 3, 2]
list3 is: [2, 3, 4, 5]
list1 and list2 contain same elements: True
list1 and list3 contain same elements: False

So sánh hai danh sách bằng bộ đếm tần số

Chúng ta cũng có thể so sánh hai danh sách mà không cần so sánh độ dài của chúng. Đối với điều này, trước tiên chúng ta sẽ phải tạo một từ điển python cho từng danh sách để theo dõi tần suất của các phần tử trong danh sách. Sau khi tạo các từ điển trong đó các phần tử của danh sách được lưu dưới dạng khóa và tần suất của chúng được lưu dưới dạng giá trị, chúng ta có thể so sánh tần suất của từng phần tử trong hai từ điển. Nếu tần số của mỗi phần tử trở nên bằng nhau, điều đó sẽ được xác nhận rằng cả hai danh sách đều chứa các phần tử bằng nhau

Đối với tác vụ này, chúng ta có thể sử dụng phương thức counter(). Phương thức counter(), khi được gọi trong danh sách, sẽ tạo một từ điển python và lưu trữ các phần tử dưới dạng khóa và tần số của chúng dưới dạng giá trị trong đó. Sau khi gọi phương thức counter(), chúng ta có thể so sánh từ điển đã tạo bằng toán tử == để kiểm tra xem tần suất của mọi phần tử có bằng nhau hay không. Nếu kết quả là True, các danh sách chứa các phần tử bằng nhau. Nếu không thì không. Điều này có thể được nhìn thấy từ ví dụ sau

import collections
# function to compare lists
def compare(l1, l2):
    # here l1 and l2 must be lists
    if len(l1) != len(l2):
        return False
    counter1 = collections.Counter(l1)
    counter2=collections.Counter(l2)
    if counter1 == counter2:
        return True
    else:
        return False


list1 = [1, 2, 3, 4]
list2 = [1, 4, 3, 2]
list3 = [2, 3, 4, 5]
print("list1 is:", list1)
print("list2 is:", list2)
print("list3 is:", list3)

# comparing list1 and list 2
print("list1 and list2 contain same elements:", compare(list1, list2))
# comparing list2 and list3
print("list1 and list3 contain same elements:", compare(list1, list3))

đầu ra

list1 is: [1, 2, 3, 4]
list2 is: [1, 4, 3, 2]
list3 is: [2, 3, 4, 5]
list1 and list2 contain same elements: True
list1 and list3 contain same elements: False

Phần kết luận

Trong bài viết này, chúng ta đã thấy ba cách khác nhau để so sánh hai danh sách trong python và đã kiểm tra xem chúng có chứa các phần tử giống nhau hay không mà không xem xét vị trí của các phần tử. Để đọc thêm về danh sách, hãy đọc bài viết này về hiểu danh sách

Trong hàm so sánh () được sử dụng trong các ví dụ, có thể người dùng chuyển hai đối tượng khác thay vì danh sách. Trong những trường hợp như vậy, chương trình có thể gặp lỗi. Để tránh điều này, chúng ta có thể sử dụng xử lý ngoại lệ bằng cách sử dụng python try except để tránh lỗi thời gian chạy bằng cách áp dụng kiểm tra kiểu bằng phương thức type() trong khối try-ngoại trừ để kiểm tra xem các đối tượng được truyền dưới dạng đối số có phải là danh sách không

Có liên quan

Đào tạo Python được đề xuất

Món ăn. Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến ​​thức cơ bản