Соответствие списка предложений другому списку с python - PullRequest
0 голосов
/ 06 марта 2020

У меня есть 2 списка, как показано ниже. В основном я хочу сопоставить элементы в list1 с list2, который игнорирует все до и после предложения в list2.

Например, элемент в list1 " Джилл очень хорош девушка"соответствует list2" Она приходит первой, потому что Джилл очень хорошая девушка", я хочу игнорировать" Она приходит первой, потому что ". Так что если list1 в list2, это означает True else False.

list1 = [
"Jill is a very good girl",
"John is a very good boy"]

Второй список, как показано ниже:

list2 = [
"John is a very good boy but he is naughty",
"John is a very good boy but he doesn't sleep",
"He eats a lot but John is a very good boy",
"Every girl is naughty but Jill is a very good girl",
"She comes first because Jill is a very good girl"]

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Проверьте этот фрагмент кода:

list1 = ["B",
         "A"]

list2 = ["ABC",
         "AB",
         "AA",
         "CCA",
         "BA"]

def check_matching(list_1, list_2):
    for sentence_2 in list_2:
        result = []
        for sentence_1 in list_1:
            if sentence_1 in sentence_2:
                result.append(True)
                break
        if not result:
            return False
    return True


print check_matching(list1,list2)

Обратите внимание, что если вы удалите A из CCA (4-й элемент list2), он начнет возвращать False. Вы можете проверить эту функцию с вашими строками в списках.

0 голосов
/ 06 марта 2020

Вы можете попробовать следующие логи c: -

def special_list_in(list1, list2):
    flag = True
    for sentList1 in list1:
        temp_flag = False;
        for sentList2 in list2:
            if sentList1.lower() in sentList2.lower():
                temp_flag = True;
                break;
        flag = flag and temp_flag
    return flag

special_list_in(list1, list2)

Если вам требуется, чтобы совпадение строк было чувствительным к регистру, удалите .lower().

...