Укажите индекс первого элемента в списке, который не содержит строк

#python #python-3.x

#python #python-3.x

Вопрос:

Если бы у меня был, например, список:

L = ["Archived X", "Pending Y", "Pending Z", "A"]

Как я могу получить индекс первого элемента в списке, который не включает «Архивированный» или «Ожидающий», т. Е. Здесь ‘3’ (соответствует «A»)?

Комментарии:

1. next(i for i, val in enumerate(L) if 'Pending' not in val and 'Archived' not in val)

Ответ №1:

Может быть, что-то вроде:

 import re

L = ["Archived X", "Pending Y", "Pending Z", "A"]
omit_exp = "Archived|Pending"
print([i for i, x in enumerate(L) if len(re.findall(omit_exp, x)) == 0][0])
 

Вывод: 3

Ответ №2:

 L = ["Archived X", "Pending Y", "Pending Z", "A"]
omit = ["Archived", "Pending"]

index=False
for i , x in enumerate(L):
    for om in omit:
        if om not in x:
            index=i
            break
        
print(index)

 

Результат

 3