Как сравнить элементы списка в Python - PullRequest
0 голосов
/ 26 сентября 2018

Здесь у меня есть два списка:

list1 = ['2C535EB58F19B58' , '7B89D9071EB531B143594FF909BAC846' , '0509']

list2 = ['1641AB0C9C5B8867' , '0098968C' , '509']

Мне нужно сравнить элементы внутри list2 с элементами list1.

Я хочу, чтобы результат был после сравнения:

509

, поскольку 509 присутствует в 0509.

Как мне этого добиться?Может ли регулярное выражение помочь мне в этом?

Ответы [ 5 ]

0 голосов
/ 26 сентября 2018
for x in list2:
    for y in list1:
        if x in y:
            print x #or whatever

вложенные циклы, я думаю, что это простой способ, но я уверен, что есть лучший

0 голосов
/ 26 сентября 2018

Как уже было предложено BearBrown в комментарии, есть простой способ достичь вашей цели.Нет никакого смысла думать о регулярных выражениях вообще (in -оператор достаточно мощный).

[x for x in list2 if any(y for y in list1 if x in y)]

Здесь вы ищите каждую строку x в списке 2, если она является подстрокойлюбую строку y в списке list1 и, наконец, сохранить каждую соответствующую подстроку x в новом списке.

0 голосов
/ 26 сентября 2018

Вы можете просто использовать операцию in в python, чтобы проверить, находится ли одна строка в другой.

Самый простой способ решить вашу проблему -

[y for y in list2 if any(y in x for x in list1)]
0 голосов
/ 26 сентября 2018

Попробуйте это: Здесь мы проверяем, является ли элемент в list2 подстрокой элемента в list1.

list1 = ['2C535EB58F19B58' , '7B89D9071EB531B143594FF909BAC846' , '0509']

list2 = ['1641AB0C9C5B8867' , '0098968C' , '509']

for i, j in zip(list1, list2):
    if j in i:
        print(j)

Однострочник, который будет добавляться в список:

print( [j for i, j in zip(list1, list2) if j in i])

Там могут быть более простые и лучшие ответы.Если это поможет, вы можете выбрать.

0 голосов
/ 26 сентября 2018

Вы можете сделать что-то вроде этого:

common_elements = []
for x in list1:
    for y in list2:
        if y in x:
            common_elements.append(y)

common_elements будет содержать элементы, которые вам нужны.

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