Python Список index() с примером
⚡ Умное резюме
Python Метод `list index()` возвращает первую позицию заданного элемента, а метод `loo` — первую позицию элемента.ping Конструкции, списковые включения, функции enumerate(), filter(), библиотека NumPy и more_itertools.locate() расширяют этот метод, позволяя собрать все совпадающие индексы в списке, содержащем повторяющиеся значения.

Список — это контейнер, в котором в упорядоченной последовательности хранятся элементы разных типов данных (целые числа, числа с плавающей запятой, логические значения, строки и т. д.). Это важная структура данных, встроенная в Python. Данные записываются в квадратных скобках ([]), а значения разделяются запятой (,).
Элементы внутри списка индексируются, причем первый элемент начинается с индекса 0. В созданный список можно вносить изменения, добавляя новые элементы или обновляя, удаляя существующие. Он также может иметь повторяющиеся элементы и вложенный список.
Существует множество доступных методов, и одним из важных является метод index().
Python Индекс списка()
Метод list index() помогает вам найти первый наименьший индекс данного элемента. Если внутри списка есть повторяющиеся элементы, возвращается первый индекс элемента. Это самый простой и понятный способ получить индекс.
Помимо встроенного метода `index()` для списка, вы также можете использовать другие способы получения индекса, например, `loo`.ping Просматривая список с помощью списковых включений, функции enumerate() и методов filter.
Метод list index() возвращает первый наименьший индекс данного элемента.
Синтаксис
list.index(element, start, end)
Параметры
| Параметры | Описание |
|---|---|
| элемент | Элемент, индекс которого вы хотите получить. |
| Начало | Этот параметр необязателен. Вы можете указать начальный индекс для поиска элемента. Если он не указан, значение по умолчанию — 0. |
| конец | Этот параметр является необязательным. Вы можете указать конечный индекс элемента для поиска. Если не задано, оно считается до конца списка. |
Возвращаемое значение
Метод list index() возвращает индекс данного элемента. Если элемент отсутствует в списке, метод index() выдаст ошибку, например ValueError: «Элемент» отсутствует в списке.
Пример: найти индекс данного элемента.
В списке my_list = ['A', 'B', 'C', 'D', 'E', 'F'] нам нужно узнать индексы элементов C и F.
В примере ниже показано, как получить индекс.
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("The index of element C is ", my_list.index('C')) print("The index of element F is ", my_list.index('F'))
Выход:
The index of element C is 2 The index of element F is 5
Пример: использование начала и конца в index()
В этом примере мы попытаемся ограничить поиск по индексу в списке, используя начальный и конечный индексы.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('C', 1, 5)) print("The index of element F is ", my_list.index('F', 3, 7)) #using just the startindex print("The index of element D is ", my_list.index('D', 1))
Выход:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Пример: Чтобы протестировать метод index() с элементом, которого нет в списке.
При попытке поиска в списке элемента, которого нет в списке, вы получите ошибку, как показано ниже:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Выход:
Traceback (most recent call last): File "display.py", line 3, in <module> print("The index of element C is ", my_list.index('Z')) ValueError: 'Z' is not in list
Использование цикла for для получения индекса элемента в списке
Мы видели, что метод list.index() возвращает индекс элемента, передаваемого в качестве аргумента.
Теперь рассмотрим список следующим образом: my_list = ['Guru', 'Сия', 'Тия', 'Guru', 'Дакш', 'Рия', 'Guru']. Имя 'Guru"" встречается в индексе 3 раза, и мне нужны все индексы с именем "".Guru.
Используя цикл for, мы сможем получить несколько индексов, как показано в примере ниже.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range(0, len(my_list)) : if my_list[i] == 'Guru' : all_indexes.append(i) print("Originallist ", my_list) print("Indexes for element Guru : ", all_indexes)
Выход:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Использование цикла while и list.index()
Использование цикла while будет проходить по заданному списку, чтобы получить все индексы данного элемента.
В списке: my_list = ['Guru', 'Сия', 'Тия', 'Guru', 'Дакш', 'Рия', 'Guru'], нам нужны все индексы элемента 'Guru.
Ниже приведён пример, демонстрирующий, как получить все индексы с помощью цикла while.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index('Guru', elementindex+1) result.append(elementindex) except ValueError: break print("OriginalList is ", my_list) print("The index for element Guru is ", result)
Выход:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Использование понимания списка для получения индекса элемента в списке
Чтобы получить все индексы, быстрый и простой способ — использовать понимание списка в списке.
Понимание списков Python функции, которые используются для создания новых последовательностей (таких как списки, словари и т. д.), т. е. с использованием уже созданных последовательностей.
Они помогают сократить длинные циклы и сделать ваш код более простым для чтения и сопровождения.
Следующий пример показывает, как это сделать:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru'] print("Indexes for element Guru : ", all_indexes)
Выход:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Использование Enumerate для получения индекса элемента в списке
Функция Enumerate() — это встроенная функция, доступная с помощью Python. Вы можете использовать enumerate, чтобы получить все индексы элемента в списке. Он принимает входные данные как итерируемый объект (т. е. объект, который можно зациклить), а выходные данные — объект со счетчиком для каждого элемента.
В следующем примере показано, как использовать функцию `enumerate` для списка, чтобы получить все индексы заданного элемента.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Выход:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Использование фильтра для получения индекса элемента в списке
Метод filter() фильтрует данный список на основе заданной функции. Каждый элемент списка будет передан в функцию, а необходимые элементы будут отфильтрованы на основе условия, заданного в функции.
Давайте воспользуемся методом filter(), чтобы получить индексы для данного элемента в списке.
В следующем примере показано, как использовать фильтр для списка.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print("Indexes for element Guru : ", all_indexes)
Выход:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Использование NumPy для получения индекса элемента в списке
Библиотека NumPy специально предназначена для работы с массивами. Поэтому здесь мы воспользуемся NumPy, чтобы получить индекс нужного элемента из заданного списка.
Чтобы использовать NumPy, нам необходимо установить его и импортировать.
Вот шаги для того же:
Шаг 1) Установить NumPy
pip install numpy
Шаг 2) Импортируйте модуль NumPy.
import numpy as np
Шаг 3) Используйте np.array для преобразования списка в массив.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Шаг 4) Получите индекс нужного элемента, используя метод np.where().
item_index = np.where(np_array == 'Guru')[0]
Окончательный рабочий код с выводом выглядит следующим образом:
import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list) item_index = np.where(np_array == 'Guru')[0] print("Originallist ", my_list) print("Indexes for element Guru :", item_index)
Выход:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Использование more_itertools.locate() для получения индекса элемента в списке.
Метод `more_itertools.locate()` помогает найти индексы элементов в списке. Этот модуль будет работать с... Python версия 3.5+. Пакет more_itertools необходимо сначала установить, чтобы использовать его.
Ниже описаны шаги по установке и использованию more_itertools:
Шаг 1) Установите more_itertools с помощью pip (Python менеджер пакетов). Команда
pip install more_itertools
Шаг 2) После завершения установки импортируйте разместить модуль, как показано ниже.
from more_itertools import locate
Теперь вы можете использовать модульlocate в списке, как показано ниже в примере:
from more_itertools import locate my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist : ", my_list) print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Выход:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
