Computer >> Máy Tính >  >> Lập trình >> Python

Python - Kiểm tra xem danh sách có nằm trong danh sách khác không

Với hai danh sách python khác nhau, chúng tôi cần tìm xem danh sách đầu tiên có phải là một phần của danh sách thứ hai hay không.

Với bản đồ và tham gia

Đầu tiên chúng ta có thể áp dụng hàm bản đồ để lấy các phần tử của danh sách và sau đó áp dụng hàm nối để kết thúc danh sách giá trị được phân tách bằng dấu phẩy. Tiếp theo, chúng tôi sử dụng toán tử in để tìm hiểu xem danh sách đầu tiên có phải là một phần của danh sách thứ hai hay không.

Ví dụ

listA = ['x', 'y', 't']
listB = ['t', 'z','a','x', 'y', 't']
print("Given listA elemnts: ")
print(', '.join(map(str, listA)))
print("Given listB elemnts:")
print(', '.join(map(str, listB)))

res = ', '.join(map(str, listA)) in ', '.join(map(str, listB))
if res:
   print("List A is part of list B")
else:
   print("List A is not a part of list B")

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given listA elemnts:
x, y, t
Given listB elemnts:
t, z, a, x, y, t
List A is part of list B

Với dải ô và len

Chúng ta có thể thiết kế một vòng lặp for để kiểm tra sự hiện diện của các phần tử tạo thành danh sách này trong danh sách khác bằng cách sử dụng hàm range và hàm len.

Ví dụ

listA = ['x', 'y', 't']
listB = ['t', 'z','a','x', 'y', 't']
print("Given listA elemnts: \n",listA)
print("Given listB elemnts:\n",listB)

n = len(listA)
res = any(listA == listB[i:i + n] for i in range(len(listB) - n + 1))

if res:
   print("List A is part of list B")
else:
   print("List A is not a part of list B")

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given listA elemnts:
['x', 'y', 't']
Given listB elemnts:
['t', 'z', 'a', 'x', 'y', 't']
List A is part of list B