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

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

Trong khi thao tác dữ liệu bằng cách sử dụng danh sách python, chúng tôi gặp một tình huống mà chúng tôi cần biết liệu hai danh sách hoàn toàn khác nhau hoặc chúng có bất kỳ phần tử nào chung. Điều này có thể được tìm ra bằng cách so sánh các phần tử trong hai danh sách với các phương pháp được mô tả dưới đây.

Sử dụng trong

Trong vòng lặp for, chúng ta sử dụng mệnh đề in để kiểm tra một phần tử có trong danh sách hay không. Chúng tôi sẽ kéo dài logic này để so sánh các phần tử của danh sách bằng cách chọn một phần tử từ danh sách đầu tiên và kiểm tra sự hiện diện của nó trong danh sách thứ hai. Vì vậy, chúng tôi sẽ có vòng lặp for lồng nhau để thực hiện việc kiểm tra này.

Ví dụ

#Declaring lists
list1=['a',4,'%','d','e']
list2=[3,'f',6,'d','e',3]
list3=[12,3,12,15,14,15,17]
list4=[12,42,41,12,41,12]

# In[23]:

#Defining function to check for common elements in two lists
def commonelems(x,y):
   common=0
   for value in x:
      if value in y:
         common=1
   if(not common):
      return ("The lists have no common elements")
   else:
   return ("The lists have common elements")

# In[24]:

#Checking two lists for common elements
print("Comparing list1 and list2:")
print(commonelems(list1,list2))
print("\n")
print("Comparing list1 and list3:")
print(commonelems(list1,list3))
print("\n")
print("Comparing list3 and list4:")
print(commonelems(list3,list4))

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

Đầu ra

Comparing list1 and list2:
The lists have common elements
Comparing list1 and list3:
The lists have no common elements
Comparing list3 and list4:
The lists have common elements

Sử dụng bộ

Một cách tiếp cận khác để tìm, nếu hai danh sách có các phần tử chung là sử dụng các tập hợp. Các tập hợp có tập hợp các phần tử duy nhất không có thứ tự. Vì vậy, chúng tôi chuyển đổi các danh sách thành các tập hợp và sau đó tạo một tập hợp mới bằng cách kết hợp các tập hợp đã cho. Nếu chúng có một số phần tử chung thì tập hợp mới sẽ không trống.

Ví dụ

list1=['a',4,'%','d','e']
list2=[3,'f',6,'d','e',3]

# Defining function two check common elements in two lists by converting to sets
def commonelem_set(z, x):
   one = set(z)
   two = set(x)
   if (one & two):
      return ("There are common elements in both lists:", one & two)
   else:
   return ("There are no common elements")

# Checking common elements in two lists for
z = commonelem_set(list1, list2)
print(z)

def commonelem_any(a, b):
out = any(check in a for check in b)

# Checking condition
   if out:
      return ("The lists have common elements.")
   else:
   return ("The lists do not have common elements.")

print(commonelem_any(list1, list2))

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

Đầu ra

('There are common elements in both lists:', {'d', 'e'})
The lists have common elements.