Как сравнить элементы списка в Python

1

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

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

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

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

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

509

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

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

  • 1
    инициализируйте список res для результатов, переберите list1 и list2 и проверьте с помощью оператора if для членства ( in ). Если True append res .
  • 4
    [x for x in list2 if any(y for y in list1 if x in y)] ?
Показать ещё 5 комментариев
Теги:
list

5 ответов

2

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

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
    Это должно работать для OP.
0
for x in list2:
    for y in list1:
        if x in y:
            print x #or whatever

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

0

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

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

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

0

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

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

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

  • 0
    будет emtpy, неправильно.
-1

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню