Метод List.index в Python
Из этого руководства вы узнаете о методе индекса списка Python. Вы увидите, как использовать его на последовательностях с помощью примеров.
Синтаксис, используемый в следующем разделе, предназначен для Python 3. Вы можете изменить его на любые другие версии Python.
Функция Index — это встроенный метод списка, который позволяет узнать индекс или позицию элемента в последовательности.
Другими словами, этот метод ищет элемент в списке и возвращает его индекс.
Его синтаксис выглядит следующим образом:
List_name.index()
Он принимает элемент в качестве аргумента и возвращает индекс. Обратите внимание, что вы можете предоставить любой ввод, такой как список, кортеж или подстрока.
Смотрите пример ниже.
myList = ['1', '11', 1, 'a', 'x', 1.1] myList.index(1) # 2 myList.index('x') # 4
Как работает функция Index()?
Требуется один аргумент, который является элементом, для которого вы хотите найти индекс или позицию в качестве результата.
Этот метод ищет элемент в списке и возвращает индекс, соответствующий его значению, в противном случае возникает ошибка ValueError.
При поиске подстрок возникает следующая ошибка.
"Substring not found"
first = 'Python is the language of the future.' print(first.index('lang', 10)) # 14 print(first.index('invalid', 10))Traceback (most recent call last): File "", line 1, in print(first.index('invalid', 10)) ValueError: substring not found
Найти индекс всех вхождений элемента в списке Python
В этом посте будет обсуждаться, как найти индекс всех вхождений элемента в списке Python.
1. Использование enumerate() функция
Чтобы получить индекс всех вхождений элемента в список, вы можете использовать встроенную функцию enumerate() . Он был введен для решения задачи счетчика циклов и может использоваться следующим образом:
if __name__ == ‘__main__’ :
ints = [ 1 , 3 , 7 , 5 , 4 , 3 ]
for index , elem in enumerate ( ints ) :
if elem == item :
print ( f »
3 is found at index 1
3 is found at index 5
Чтобы получить список всех индексов сразу, используйте понимание списка с функцией перечисления:
if __name__ == ‘__main__’ :
ints = [ 1 , 3 , 7 , 5 , 4 , 3 ]
indexes = [ i for i , j in enumerate ( ints ) if j == item ]
print ( f «Item
# результат: Item 3 is found at index [1, 5]
2. Использование range() функция
В качестве альтернативы вы можете использовать range() функция, чтобы получить список всех допустимых индексов, а затем сопоставить соответствующее значение, присутствующее в каждом индексе, с данным элементом.
if __name__ == ‘__main__’ :
ints = [ 1 , 3 , 7 , 5 , 4 , 3 ]
indexes = [ i for i in range ( len ( ints ) ) if ints [ i ] == item ]
print ( f «Item
# результат: Item 3 is found at index [1, 5]
3. Использование itertools модуль
Другой подход заключается в использовании count() функционировать в itertools , который создает итератор для эффективного цикла, чтобы возвращать равномерно распределенные значения, начиная с заданного числа. Вы можете использовать его с zip() для добавления порядковых номеров следующим образом.
from itertools import count
if __name__ == ‘__main__’ :
ints = [ 1 , 3 , 7 , 5 , 4 , 3 ]
zipped = [ ( i , j ) for i , j in zip ( count ( ) , ints ) if j == item ]
print ( zipped )
4. Использование more_itertools модуль
The more-itertools библиотека предоставляет элегантные подпрограммы для работы с итерируемыми объектами Python. Вы можете использовать more_itertools.locate функция, которая возвращает индекс каждого элемента в итерируемом объекте, для которого выполняется заданный предикат. Ниже приведен простой пример, демонстрирующий использование этой функции:
Как найти индекс элемента в списке, по частичному совпадению?
Как получить индексы всех элементов, содержащих имя Анна?
- Вопрос задан более двух лет назад
- 951 просмотр
Комментировать
Решения вопроса 1

soremix @SoreMix Куратор тега Python
Собственно, нужно перебрать все элементы из списка и проверять на вхождение в каждый элемент поисковой фразы с помощью in , если фраза входит в элемент — получаем индекс элемента через List.index(element)
search = 'Анна' indexes = [index_list.index(name) for name in index_list if search in name]
Ответ написан более двух лет назад
Получить элемент в подлисте по индексу

Как в код-блоке и питоне получить определенный элементы по индексу в подлисте?
14.04.2017 в 15:52 #5459 Score: 1
Karma: 470 pts
в код блоке ответа не знаю (сам сталкивался с подобной ситуацией)
а в питоне примерно так:
IN0 = [[1,2,3],[4,5,6]]
list1 = []
for i in IN0:
list1.append(i[1]) # где 1 – номер нужного элемента в каждом подсписке
OUT = list1
на выходе будут 1-ые элементы каждого подсписка (т.е. 2 и 5)
15.04.2017 в 00:46 #5461 Score: 0
Karma: 186 pts
вроде в красном прямоугольнике есть ответ на вопрос, a[0][1], в первых скобках номер подсписка, во вторых – номер элемента подсписка
15.04.2017 в 11:53 #5462 Score: 0
Karma: 86 pts
необходимо получить каждый элемент по указанному индексу во всех подлистах, то есть тот результат, который получается на выходе нода GetItemAtIndex но алгоритмом в код-блоке и на Питоне (также надо как-то определить общее количество элементов в каждом из подлистов)
15.04.2017 в 12:17 #5463 Score: 2
Karma: 186 pts

15.04.2017 в 13:12 #5464 Score: 2
Karma: 186 pts
В Python можно в одну строчку sublist = map(lambda x:x[0],lists)
27.03.2018 в 07:31 #7739 Score: 0
Karma: 3 pts
А как можно сделать наоборот? Получить от элемента “Номер списка. Номер подсписка. Номер подподсписка” и т.д.? Типа 1.2.7.4?
27.03.2018 в 10:57 #7741 Score: 0
Karma: 3 pts
Подскажите как произвести сортировку по 3-х уровненному списку (исходный): в случае если в уровне L1 содержится элемент с именем “222”, Нужно вернуть в весе массивы (может быть много) уровня L2 (входящего массива) содержащие “222” в L2 (нового) массива. в случае если в уровне L1 содержится элемент с именем “333”, Нужно вернуть в весе массивы (может быть много) уровня L2 (входящего массива) содержащие “333” в L2 (нового) массива. Иными словами нужно отсортировать массивы L2 по заданным элементам содержащихся в массивах L1. фактически мы должны изменить порядок следования списков L2 по заданным параметрам одного из элементов.
27.03.2018 в 11:03 #7742 Score: 1
Karma: 186 pts
Друзья сопровождайте пожалуйста свои вопросы более подробными объяснениями, наилучший вариант – показать два списка, исходный и желаемый. Шпильки вопрос понятен, но есть одна проблема – все элементы должны быть уникальными, иначе решений будет несколько. Такой вариант устраивает?
27.03.2018 в 11:21 #7745 Score: 0
Karma: 3 pts

Хаcан, конечно. Я понимаю, что одному элементу нельзя присвоить в один параметр два значения…Хотя, до того, как Вы написали, я об этом не задумывалась… На всякий случай прикладываю картинку:
27.03.2018 в 12:11 #7746 Score: 0
Karma: 3 pts

https://yadi.sk/d/tHD1WX3J3ToDWB