Hướng dẫn how do you check if an element is in another list python? - làm thế nào để bạn kiểm tra xem một phần tử có nằm trong một danh sách python khác hay không?

Tôi đã thu thập một số giải pháp được đề cập trong các câu trả lời khác và trong các bình luận, sau đó chạy một bài kiểm tra tốc độ. not set[a].isdisjoint[b] hóa ra là nhanh nhất, nó cũng không chậm lại nhiều khi kết quả là False.

Mỗi trong ba lần chạy thử một mẫu nhỏ của các cấu hình có thể có của ab. Thời gian là trong micro giây.

Any with generator and max
        2.093 1.997 7.879
Any with generator
        0.907 0.692 2.337
Any with list
        1.294 1.452 2.137
True in list
        1.219 1.348 2.148
Set with &
        1.364 1.749 1.412
Set intersection explcit set[b]
        1.424 1.787 1.517
Set intersection implicit set[b]
        0.964 1.298 0.976
Set isdisjoint explicit set[b]
        1.062 1.094 1.241
Set isdisjoint implicit set[b]
        0.622 0.621 0.753
import timeit

def printtimes[t]:
    print '{:.3f}'.format[t/10.0],

setup1 = 'a = range[10]; b = range[9,15]'
setup2 = 'a = range[10]; b = range[10]'
setup3 = 'a = range[10]; b = range[10,20]'

print 'Any with generator and max\n\t',
printtimes[timeit.Timer['any[x in max[a,b,key=len] for x in min[b,a,key=len]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['any[x in max[a,b,key=len] for x in min[b,a,key=len]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['any[x in max[a,b,key=len] for x in min[b,a,key=len]]',setup=setup3].timeit[10000000]]
print

print 'Any with generator\n\t',
printtimes[timeit.Timer['any[i in a for i in b]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['any[i in a for i in b]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['any[i in a for i in b]',setup=setup3].timeit[10000000]]
print

print 'Any with list\n\t',
printtimes[timeit.Timer['any[[i in a for i in b]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['any[[i in a for i in b]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['any[[i in a for i in b]]',setup=setup3].timeit[10000000]]
print

print 'True in list\n\t',
printtimes[timeit.Timer['True in [i in a for i in b]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['True in [i in a for i in b]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['True in [i in a for i in b]',setup=setup3].timeit[10000000]]
print

print 'Set with &\n\t',
printtimes[timeit.Timer['bool[set[a] & set[b]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a] & set[b]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a] & set[b]]',setup=setup3].timeit[10000000]]
print

print 'Set intersection explcit set[b]\n\t',
printtimes[timeit.Timer['bool[set[a].intersection[set[b]]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a].intersection[set[b]]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a].intersection[set[b]]]',setup=setup3].timeit[10000000]]
print

print 'Set intersection implicit set[b]\n\t',
printtimes[timeit.Timer['bool[set[a].intersection[b]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a].intersection[b]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['bool[set[a].intersection[b]]',setup=setup3].timeit[10000000]]
print

print 'Set isdisjoint explicit set[b]\n\t',
printtimes[timeit.Timer['not set[a].isdisjoint[set[b]]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['not set[a].isdisjoint[set[b]]',setup=setup2].timeit[10000000]]
printtimes[timeit.Timer['not set[a].isdisjoint[set[b]]',setup=setup3].timeit[10000000]]
print

print 'Set isdisjoint implicit set[b]\n\t',
printtimes[timeit.Timer['not set[a].isdisjoint[b]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['not set[a].isdisjoint[b]',setup=setup1].timeit[10000000]]
printtimes[timeit.Timer['not set[a].isdisjoint[b]',setup=setup3].timeit[10000000]]
print

Có 2 cách để hiểu kiểm tra xem danh sách có chứa các yếu tố của danh sách khác không. Đầu tiên, sử dụng tất cả [] các hàm để kiểm tra xem danh sách Python có chứa tất cả các yếu tố của danh sách khác không.all[] functions to check if a Python list contains all the elements of another list.

Và thứ hai, sử dụng bất kỳ [] chức năng nào để kiểm tra xem danh sách có chứa bất kỳ yếu tố nào của một hàm khác không. any[] function to check if the list contains any elements of another one.

Chương trình đơn giản để kiểm tra danh sách chứa các yếu tố của danh sách khác.

tất cả [] phương thức

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

check = all[item in List1 for item in List2]

if check:
    print["The list1 contains all elements of the list2"]
else:
    print["No, List1 doesn't have all elements of the List2."]

Output::

bất kỳ [] phương thức

Sử dụng any[] & A Hiểu danh sách:

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

check = any[item in List1 for item in List2]

if check:
    print["The list1 contains some elements of the list2"]
else:
    print["No, List1 doesn't have any elements of the List2."]

Đầu ra: Danh sách1 chứa một số yếu tố của List2: The list1 contains some elements of the list2

Một phương pháp khác sử dụng vòng lặp

Cách tiếp cận tìm kiếm tùy chỉnh cơ bản này trong đó các thử nghiệm nếu danh sách đầu tiên chứa mục thứ hai bằng cách sử dụng vòng lặp thời gian.

Trong khi lặp lại các danh sách nếu nhận được một phần tử chồng chéo, thì hàm trả về true. Tìm kiếm tiếp tục cho đến khi không có yếu tố để khớp và trả về sai.

def list_contains[List1, List2]:
    check = False

    # Iterate in the 1st list
    for m in List1:

        # Iterate in the 2nd list
        for n in List2:

            # if there is a match
            if m == n:
                check = True
                return check

    return check


List1 = ['a', 'e', 'i', 'o', 'u']
List2 = ['x', 'y', 'z', 'l', 'm']
print[list_contains[List1, List2]]

Đầu ra: Sai: False

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.

Lưu ý: IDE: & NBSP; Pycharm & NBSP; 2021.3.3 [Phiên bản cộng đồng] IDE: PyCharm 2021.3.3 [Community Edition]

Windows 10

Python 3.10.1

Tất cả & nbsp; ví dụ python & nbsp; là trong & nbsp; Python & nbsp; 3, vì vậy có thể khác với các phiên bản Python 2 hoặc nâng cấp. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.

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ó nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.

Làm thế nào để bạn kiểm tra xem một yếu tố của danh sách có trong một danh sách khác không?

Chúng ta có thể sử dụng phương thức danh sách Python được xây dựng, Count [], để kiểm tra xem phần tử được truyền có tồn tại trong danh sách không.use the in-built python List method, count[], to check if the passed element exists in the List.

Bạn có thể sử dụng == cho các danh sách trong Python không?

Phương thức python sort [] và == Toán tử để so sánh các danh sách chúng ta có thể câu lạc bộ phương thức python sort [] với toán tử == để so sánh hai danh sách.Phương thức python sort [] đượ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.We can club the Python sort[] method with the == operator to compare two lists. Python sort[] method is used to 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àm thế nào để bạn kiểm tra xem một giá trị có trong nhiều danh sách trong Python không?

Sử dụng hàm All [] để kiểm tra xem nhiều giá trị có nằm trong danh sách không, ví dụ:Nếu tất cả [giá trị trong my_list cho giá trị trong nhiều_values]:.Hàm tất cả [] sẽ trả về true nếu tất cả các giá trị được chỉ định nằm trong danh sách và sai.Đã sao chép!, e.g. if all[value in my_list for value in multiple_values]: . The all[] function will return True if all of the specified values are in the list and False otherwise. Copied!

Bài Viết Liên Quan

Chủ Đề