Как я могу вернуть True, если один и тот же символ найден в двух списках?

#python #python-3.x #function #duplicates

#python #python-3.x #функция #дубликаты

Вопрос:

Мне нужно написать функцию, которая принимает два списка и возвращает True, если один и тот же символ найден в обоих списках. например, если списки L1 = [‘v’, ‘a’, ‘b’, ‘c’] и L2 = [‘j’, ‘k’, ‘v’], он должен возвращать True, потому что ‘v’ находится в обоих списках. Это то, что у меня есть, но я предполагаю, что он просто оценивает самый первый символ и возвращает bool на основе этого. Как я могу сделать так, чтобы он проходил через каждый символ и выполнялся, как в примере, который я написал выше?

 def contains_duplicates(L1, L2):
  for i in L1:
    if i in L1 and i in L2:
      return True
    else: return False```
 

Комментарии:

1. Проще (и часто быстрее), если входные данные являются хешируемыми: return not set(L1).isdisjoint(L2)

Ответ №1:

Если первый элемент L1 отсутствует L2 , вы должны проверить следующий элемент L1 вместо return

 def contains_duplicates(L1, L2):
  for i in L1:
    if i in L2:
      return True
  return False