Python: элемент существует в списке 1 и списке 2 - PullRequest
1 голос
/ 01 августа 2020

это мой код с 2 списками. Скрипт проверяет похожие элементы и помещает их в новый список с именем newlist:

list1 = ['jack sparow' , 'monika hardan', 'hamid tatan', 'california']

list2 = ['california']

newlist = []

if any(x in list1 for x in list2):
    newlist.append(list2)

print(newlist)

Вывод: [['california']]

То, что я ищу, есть, даже если элемент в списке 1 содержит одно слово элемента в списке 2, должно быть обнаружено, вот пример:

list1 = ['jack sparow' , 'monika hardan', 'hamid tatan', 'california']

list2 = ['sparow']

newlist = []

if any(x in list1 for x in list2):
    newlist.append(list2)

print(newlist)

Вывод: []

Требуемый вывод: [['jack sparow']]

Ответы [ 3 ]

2 голосов
/ 01 августа 2020

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

list1 = ['jack sparow', 'monika hardan', 'hamid tatan', 'california']

list2 = ['california', 'sparow']

newlist = [[x] for x in list1 for y in list2 if y in x]

print(newlist)

который печатает

[['jack sparow'], ['california']]

ОБНОВЛЕНИЕ

Чтобы получить результат [['jack sparow'], [None], [None], ['california']], вы можете попробовать следующее:

def is_partially_contained_in(s, t):
    for y in t:
        if y in s:
            return True
    return False


list1 = ['jack sparow', 'monika hardan', 'hamid tatan', 'california']

list2 = ['california', 'sparow']

newlist = [[x] if is_partially_contained_in(x, list2) else [None] for x in list1]

print(newlist)

который печатает

[['jack sparow'], [None], [None], ['california']]
2 голосов
/ 01 августа 2020
list1 = ['jack sparow' , 'monika hardan', 'hamid tatan', 'california']

list2 = ['california']

newlist = []

for a in list2:
    for b in list1:
        if a in b:
            newlist.append(b)

print(newlist)
1 голос
/ 01 августа 2020

Попробуйте следующее:

if any(x in y for y in list1 for x in list2):
    newlist.append(list2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...