07 Июл 2023
1 мин
1319

Как найти все вхождения элемента в списке в Python

Часто возникает необходимость найти все вхождения определенного элемента в списке. Встроенный метод Python index() возвращает индекс первого вхождения

Содержание

Часто возникает необходимость найти все вхождения определенного элемента в списке. Встроенный метод Python index() возвращает индекс первого вхождения элемента в списке, но что делать, если необходимо найти все вхождения элемента?

Предположим, есть список:

numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3]

И нужно найти все вхождения числа 1 в этом списке.

Существует несколько способов решить эту задачу.

Способ 1: Использование цикла for и функции enumerate()

Один из способов — использовать цикл for и функцию enumerate(). Функция enumerate() принимает список и возвращает индекс и значение каждого элемента в формате объекта. Этот объект можно использовать в цикле for для обхода списка.

numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3]
indices = [i for i, x in enumerate(numbers) if x==1]
print(indices)

Способ 2: Использование функции list comprehension

Другой способ — использовать list comprehension, для создания нового списка, который будет содержать индексы всех вхождений элемента.

numbers = [1, 2, 3, 1, 2, 3, 1, 2, 3]
indices = [i for i in range(len(numbers)) if numbers[i]==1]
print(indices)

Оба этих способа вернут список индексов [0, 3, 6], что соответствует всем позициям числа 1 в исходном списке.

Таким образом, можно использовать циклы и другие функции Python для решения задачи поиска всех вхождений элемента в списке.

Содержание

Добавить комментарий

Определи профессию по рисунку