2016-11-12 3 views
0

Так у меня есть следующий список:Как найти индексы слов в списке?

found = ['ITERATION 0', 'string', 'ITERATION 1', 'string', 'ITERATION 2', 'string'] 

Я пытаюсь, и я не могу за жизнь мне найти какие-либо ответы от StackOverflow или Youtube, чтобы извлечь индекс каждого ITERATION.

Так что в моем примере reslt будет [0, 2, 4].

Я могу использовать found.index(r'ITERATION 0') для того, чтобы найти конкретное событие; но это не помогает мне найти 2 и 4.

+1

http://stackoverflow.com/questions/176918/finding-the-index-of-an-item-given-a-list-containing-it-in-python – snagpaul

+1

Иногда вам приходится самостоятельно определять ответ а не искать что-то консервированное. – martineau

ответ

2

Вы можете использовать enumerate с пониманием списка:

>>> found = ['ITERATION 0', 'string', 'ITERATION 1', 'string', 'ITERATION 2', 'string'] 
>>> [i for i, s in enumerate(found) if s.startswith('ITERATION')] 
[0, 2, 4] 

В выше enumerate возвращает (index, string) кортежей. Для каждого определения списка кортежей проверяется, начинается ли строка с 'ITERATION', и если она содержит индекс к результату.

Смежные вопросы