условие elif не работает должным образом для сопоставления строк в python - PullRequest
0 голосов
/ 25 сентября 2019

Я занимаюсь разработкой кода для веб-страниц, но при этом пытаюсь изменить код так, чтобы он извлекал конкретный элемент, если ссылка на веб-сайт содержит строку из предварительно определенного списка строк.Я пытаюсь сделать это с помощью условия if elif.

контекст выглядит примерно так:

list1 = ["apple","bat"]
list2 = ["cat", "mat"]

tester = ["www.cat.com","www.website.com","www.apple.com"]
for a in tester:
    print(a)
    if (item1 in a for item1 in list1):
        print("apple is present")
    elif ("john" in a):
        print("failed")
    elif (item2 in a for item2 in list2):
        print("cat is present")

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

Вывод, который я получил:

apple is present
apple is present
apple is present

1 Ответ

3 голосов
/ 25 сентября 2019

Если if всегда успешнее, чем elif, то проблема в том, что если сам, а не elif.

В вашем случае вы пропускаете any:

if any(item1 in a for item1 in list1):
...