Есть альтернатива list.index(i)?

list.index(i) возвращает положение первого элемента со значением i. Мне же нужно, чтобы возвращалось положение каждого элемента со значением i. Есть ли альтернатива? Бонусный вопрос: а почему именно первый элемент? Откуда такое ограничение?


Ответы (1 шт):

Автор решения: strawdog
my_list = [1,2,3,4,1,5,6,1,8,9,1,1,0]
searchfor = 1

indices = [x[0] for x in list(enumerate(my_list)) if x[1]==searchfor]
print(indices)

Результат:

[0, 4, 7, 10, 11]

Первый индекс возвращается потому, что так было задумано - это быстрый метод, он должен вернуть наименьший индекс, по возможности, избежав прохода по всему итерируемому объекту.

→ Ссылка