сравнивая два списка, python - PullRequest
       8

сравнивая два списка, python

0 голосов
/ 25 октября 2010

Я должен определить функцию overlapping (), которая принимает два списка и возвращает True, если у них есть хотя бы один общий элемент, иначе False.Ради упражнения я должен написать его, используя два вложенных цикла for.Что я делаю не так?

def overlapping(a,b):
    for char in a:
        for char2 in b:
            return char in char2

Есть предложения, как заставить это работать?

Ответы [ 3 ]

2 голосов
/ 25 октября 2010

Вы должны использовать ==, а не оператор in

def overlapping(list_a,list_b):
    for char_in_list_a in list_a:
        for char_in_list_b in list_b:
            if char_in_list_a == char_in_list_b:
                return True
    return False

Если вы хотите что-то, используя set:

def overlapping(a,b):
         return bool(set(a) & set(b))
2 голосов
/ 25 октября 2010

Если вам действительно нужно использовать 2 цикла:

def overlapping(a,b):
    for char1 in a:
        for char2 in b:
            if char1 == char2: return True
    return False

Но решение с множествами намного лучше.

0 голосов
/ 25 октября 2010

Return завершает функцию сразу после выполнения.Поскольку это домашнее задание, вы должны сами придумать рабочее решение.Вы можете рассмотреть возможность использования набора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...