Как вывести индексы вхождений символа с помощью list comprehension?
Пусть у меня есть какая-то строка например some_str = "вася бежал по полю и умер" и я хочу получить список всех индексов вхождений буквы "а". То есть я хочу сделать следующее:
some_str = "вася бежал по полю и умер"
lst = []
for i in range(len(some_str)):
if some_str[i] == "а":
lst.append(i)
print(lst)
То есть вывод на данную строку будет следующим:
[1, 8]
Есть ли возможность здесь использовать list comprehension? То есть у меня была идея написать, что то типо следующего:
lst = [x == "а" for x in some_str]
Но естественно, это не дает желаемого результата. Есть ли возможность использовать list comprehension в моем случае?
Ответы (2 шт):
Собственно, также, как и в обычном цикле :)
some_str = "вася бежал по полю и умер"
lst = [i for i in range(len(some_str)) if some_str[i] == "а"]
print(lst)
Выхлоп:
[1, 8]
Очень забавно, что я пару часов назад задавал вопрос на эту тему =)
я бы воспользовался enumerate() методом, который возвращает индекс:значение для итерируемых типов данных.
>>> some_str = "вася бежал по полю и умер"
>>> [index_ for index_, element in enumerate(some_str) if element == 'а']
[1, 8]