Подтвердить что ты не робот

Python - найти позицию индекса в списке на основе частичной строки

mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]

Мне нужна позиция индекса для всех элементов, содержащих "aa". У меня возникли проблемы с объединением enumerate() с частичным сопоставлением строк. Я даже не уверен, должен ли я использовать перечисление.

Мне просто нужно вернуть индексные позиции: 0,2,5

4b9b3361

Ответ 1

indices = [i for i, s in enumerate(mylist) if 'aa' in s]

Ответ 2

Ваша идея использовать enumerate() была правильной.

indices = []
for i, elem in enumerate(mylist):
    if 'aa' in elem:
        indices.append(i)

В качестве альтернативы, как понимание списка:

indices = [i for i, elem in enumerate(mylist) if 'aa' in elem]

Ответ 3

Без enumerate():

>>> mylist = ["aa123", "bb2322", "aa354", "cc332", "ab334", "333aa"]
>>> l = [mylist.index(i) for i in mylist if 'aa' in i]
>>> l
[0, 2, 5]