Понимание вложенного списка Python со всеми () или любым () - PullRequest
0 голосов
/ 02 ноября 2019

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

list1 = ['antxyz', 'bear456', 'catabc', 'dog0xy', 'zebraayc']
list2 = ['cat', 'dog']

Мой оригинальный код работает так:

all('cat' in item or 'dog' in item for item in list2)
True

any('cat' in item or 'dog' in item for item in list1)
True

Теперь вместо того, чтобы использовать отдельные условия (кошка или собака) в условии, я хотел поместить эти строки в list2 и использовать его для проверки условий по list1. Как мне это сделать?

Пока что я создал подобный вложенный список, который, кажется, приближает меня к тому, что мне нужно, но я не могу понять, как включить его во все () или любые () функции.

for item2 in list2:
    for item1 in list1:
        if item2 in item1:
            print(item2 + ' found in ' + item1)
        else:
            print(item2 + ' not found in ' + item1)

dog not found in antxyz
dog not found in bear456
dog not found in catabc
dog found in dog0xy
dog not found in zebraayc
cat not found in antxyz
cat not found in bear456
cat found in catabc
cat not found in dog0xy
cat not found in zebraayc

1 Ответ

0 голосов
/ 02 ноября 2019
for item2 in list2:
    for item1 in list1:
        if item2 in item1:
            print(item2 + ' found in ' + item1)
        else:
            print(item2 + ' not found in ' + item1)`

Вместо использования вложенных циклов вы можете уменьшить его еще больше. Также для более быстрого поиска мы можем изменить список1, чтобы установить. Итак, код для этого:

list1 = {'ant', 'bear', 'cat', 'dog', 'zebra'}

for element in list2:
      if element in list1:
             print('Found!!')

Также предложенный Jab, вы можете использовать issubset () метод устанавливает для прямой проверки.

s.issubset (t) или s <= t: проверить, находится ли каждый элемент в s в t </p>

По вашему требованию это:

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