Python Список index() із прикладом
⚡ Розумний підсумок
Python list index() повертає першу позицію заданого елемента, тоді як looping Конструкції, спискові обробники, enumerate(), filter(), бібліотека NumPy та more_itertools.locate() розширюють цю техніку для збору кожного відповідного індексу у списку, що містить дублікати значень.

Список — це контейнер, який зберігає елементи різних типів даних (цілі, числа з плаваючою точкою, логічні значення, рядки тощо) у впорядкованій послідовності. Це вбудована важлива структура даних Python. Дані записуються в квадратних дужках ([]), а значення розділяються комою (,).
Елементи всередині списку індексуються з першим елементом, починаючи з індексу 0. Ви можете вносити зміни у створений список, додаючи нові елементи або оновлюючи, видаляючи існуючі. Він також може мати повторювані елементи та вкладений список.
У списку доступно багато методів, і одним із важливих є index().
Python Індекс списку()
Метод list index() допомагає вам знайти перший найнижчий індекс даного елемента. Якщо в списку є повторювані елементи, повертається перший індекс елемента. Це найпростіший і зрозумілий спосіб отримати індекс.
Окрім вбудованого методу list index(), ви також можете використовувати інші способи отримання індексу, такі як looping через список, використовуючи спискові розуміння, enumerate(), методи фільтрації.
Метод list index() повертає перший найнижчий індекс даного елемента.
синтаксис
list.index(element, start, end)
Параметри
| Параметри | Опис |
|---|---|
| елемент | Елемент, індекс якого ви хочете отримати. |
| старт | Цей параметр необов'язковий. Ви можете визначити початковий індекс для пошуку елемента. Якщо його не вказано, значення за замовчуванням дорівнює 0. |
| кінець | Цей параметр необов'язковий. Ви можете вказати кінцевий індекс для елемента, який буде шукатися. Якщо не вказано, воно вважається до кінця списку. |
значення, що повертається
Метод list index() повертає індекс даного елемента. Якщо елемент відсутній у списку, метод index() видасть помилку, наприклад, ValueError: 'Element' is not in the list.
Приклад: знайти індекс даного елемента.
У списку 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]
