Список - це контейнер, який зберігає елементи різних типів даних (ints, floats, Boolean, рядки тощо) в упорядкованій послідовності. Це важлива структура даних, яка вбудована в Python. Дані записуються у квадратні дужки ([]), а значення відокремлюються комами (,).
Елементи всередині списку індексуються першим елементом, починаючи з індексу 0. Ви можете внести зміни у створений список, додавши нові елементи або оновивши та видаливши існуючі. Він також може мати повторювані елементи та вкладений список.
У списку доступно багато методів, і важливим є індекс ().
У цьому підручнику ви дізнаєтесь:
- Індекс списку Python ()
- Використання for-loop для отримання індексу елемента у списку
- Використання while-loop та list.index ()
- Використання розуміння списку для отримання індексу елемента у списку
- Використання Enumerate для отримання індексу елемента у списку
- Використання фільтра для отримання індексу елемента у списку
- Використання NumPy для отримання індексу елемента у списку
- Використання more_itertools.locate () для отримання індексу елемента у списку
Індекс списку Python ()
Метод list index () допомагає знайти перший найнижчий індекс даного елемента. Якщо всередині списку є повторювані елементи, повертається перший індекс елемента. Це найпростіший і найпростіший спосіб отримати індекс.
Окрім вбудованого методу списку index (), ви також можете використовувати інші способи отримання індексу, наприклад, перегляд списку, використовуючи методи розуміння списку, enumerate (), фільтрування.
Метод list index () повертає перший найнижчий індекс даного елемента.
Синтаксис
list.index(element, start, end)
Параметри
Параметри | Опис |
елемент | Елемент, для якого потрібно отримати індекс. |
почати | Цей параметр необов’язковий. Ви можете визначити індекс start: для пошуку елемента. Якщо не вказано, значення за замовчуванням - 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 2The 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 startindexprint("The index of element D is ", my_list.index('D', 1))
Вихід:
The index of element C is 2The index of element F is 5The 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, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Використання for-loop для отримання індексу елемента у списку
З методом list.index () ми побачили, що він дає індекс елемента, який передається як аргумент.
Тепер розглянемо список як: my_list = ['Гуру', 'Сія', 'Тія', 'Гуру', 'Дакш', 'Рія', 'Гуру']. Ім'я "Гуру" присутнє тричі в індексі, і я хочу, щоб усі індекси з іменем "Гуру".
Використовуючи for-loop, ми повинні мати можливість отримати множинні індекси, як показано в прикладі нижче.
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-loop та list.index ()
Використовуючи цикл while, буде прокручувати список, щоб отримати всі індекси даного елемента.
У списку: my_list = ['Гуру', 'Сія', 'Тія', 'Гуру', 'Дакш', 'Рія', 'Гуру'], нам потрібні всі індекси елемента "Гуру".
Нижче наведений приклад показує, як отримати всі індекси за допомогою циклу while
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("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. Ви можете скористатися перелічуванням, щоб отримати всі індекси елемента у списку. Він приймає вхід як ітерабельний об'єкт (тобто об'єкт, який можна зациклювати), а результат - об'єкт із лічильником для кожного елемента.
Наступний приклад показує, як використовувати перелічення в списку, щоб отримати всі індекси для даного елемента.
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 npmy_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 locatemy_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]
Короткий зміст:
- Метод list index () допомагає знайти індекс даного елемента. Це найпростіший і найпростіший спосіб отримати індекс.
- Метод list index () повертає індекс даного елемента.
- Якщо елемент відсутній у списку, метод index () видасть помилку, наприклад, ValueError: 'Елемент' відсутній у списку.
- Окрім вбудованого методу списку, ви також можете скористатися іншими способами отримання індексу, наприклад, перегортання списку, використання розумінь списку, використання enumerate (), використання фільтра тощо.
- Використання for-loop і while-loop для отримання множинних індексів даного елемента.
- Щоб отримати всі індекси, швидким і зрозумілим способом є використання розуміння списку в списку.
- Розуміння списків - це функції Python, які використовуються для створення нових послідовностей.
- Вони допомагають зменшити довші цикли та полегшити читання та обслуговування коду.
- Ви можете скористатися перелічуванням, щоб отримати всі індекси елемента у списку.
- Функція Enumerate () - це вбудована функція, доступна з python. Він приймає вхід як ітерабельний об'єкт (тобто об'єкт, який можна зациклювати), а результат - об'єкт із лічильником для кожного елемента.
- Метод filter () фільтрує даний список на основі заданої функції.
- Бібліотека Numpy спеціально використовується для масивів. Ви можете скористатися NumPy, щоб отримати індекс елемента, вказаного у списку.
- More_itertools.locate () - це ще одна бібліотека python, яка допомагає знаходити індекси вказаного списку.