Как узнать индекс элемента в списке python
Перейти к содержимому

Как узнать индекс элемента в списке python

  • автор:

Работа с последовательностями как с массивами

Сохраним последовательность целых чисел в памяти, чтобы мы могли перебрать ее много раз. Будем называть такую последовательность массивом. В питоне нет типа «массив». Но есть тип list (список, значения — любые типы) и str — строка (значения только символы).

a = list(map(int, input().split())) 

или зададим ее не с клавиатуры, а определим прямо в программе:

a = [3, 7, -2, 10] print(a) # [3, 7, -2, 10] 

Если последовательность чисел хранится в памяти, мы можем обратиться к любому ее элементу в любом порядке по индексу (номеру элемента в последовательности.

 +---+---+---+---+---+---+ x | P | y | t | h | o | n | значение (число), value +---+---+---+---+---+---+ i 0 1 2 3 4 5 6=len номер (index) -6 -5 -4 -3 -2 -1 

Переберем последовательсть (строку), печатая значения (буквы) и их номера в строке. Используем для этого enumerate

len — вычислить длину последовательности (функция языка питон).

a = 'python' for i, x in enumerate(a): print(i, x) print('length =', len(a)) # Output: # 0 p # 1 y # 2 t # 3 h # 4 o # 5 n # length = 6 

a[i] — доступ к любому элементу массива

массив[номер] — обращение к элементу массива. Так можно читать, так можно писать в массив.

a = [3, 5, -2, 10] print(a) # [3, 5, -2, 10] x = a[1] # x = 5 a[0] = 77 print(a) # [77, 5, -2, 10] a[1] = a[2] + a[0] # a[1] = -2 + 77 print(a) # [77, 75, -2, 10] a[-1] = 8 print(a) # [77, 75, -2, 8] 

Перебираем

Зададим список a = [3, 5, -2, 10] и переберем его всеми известными способами.

enumerate — номер, значение

for i, x in enumerate(a): print(i, x) # Output: # 0 3 # 1 5 # 2 -2 # 3 10 

for..in — только значение

Номер не печатаем.

for x in a: print(x) # Output: # 3 # 5 # -2 # 10 

range(len(a)) — только номера

По номеру i можно найти значение a[i] .

for i in range(len(a)): print(i, a[i]) # Output: # 0 3 # 1 5 # 2 -2 # 3 10 

Срез (slice) — часть списка

Можно обратиться к части массива от номера i (включая) до номера j (не включая). Математики запишут это как [i, j) Программисты запишут срез (slice) a[i:j] и сделают новый список.

>>> a = [3, 5, -2, 10, 8, 1, 17] >>> a[3] 10 >>> a[1:4] [5, -2, 10] >>> a[-5:-2] [-2, 10, 8] 

У срезов есть (как у range) третий аргумент — шаг.

a[i:j:k] — взять срез списка a от i (включая) до j (НЕ включая) с шагом (прибавить) k.

>>> a = [3, 5, -2, 10, 8, 1, 17] >>> a[1:6:2] [5, 10, 1] >>> a[-2:-5:-1] [1, 8, 10] 

Можно не писать номер начала или номер конца среза. Тогда это будет «начало» и «конец» списка.

>>> a = [3, 5, -2, 10, 8, 1, 17] >>> a[:4] [3, 5, -2, 10] >>> a[3:] [10, 8, 1, 17] >>> a[:4:2] [3, -2] >>> a[3::2] [10, 1] >>> a[::2] [3, -2, 8, 17] >>> a[::-1] [17, 1, 8, 10, -2, 5, 3] 

Как напечатать список

Дан список a = [3, 5, -2, 10] . Надо его напечатать.

Как пишут в программе:

print(a) # [3, 5, -2, 10] 
for x in a: print(x) # Output: # 3 # 5 # -2 # 10 

В строку, используем аргумент end функции print:

for x in a: print(x, end=' ') # печатаем через пробел print() # в конце 1 раз - новая строка 

В строку, используя оператор * (развернуть список в его элементы):

a = [3, 5, -1, 10] print(a) # [3, 5, -1, 10] print(*a) # 3 5 -2 10 

Внимание! В проверяющей системе, если говорится о последовательности чисел, ее можно печатать или в строку, или в столбец.

results matching » «

No results matching » «

Метод 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

Вывести индексы всех вхождений элемента в списке

Создайте функцию, которая вернет индексы всех вхождений элемента в списке.

Примеры:

get_indices(["a", "a", "b", "a", "b", "a"], "a") ➞ [0, 1, 3, 5] get_indices([1, 5, 5, 2, 7], 7) ➞ [4] get_indices([1, 5, 5, 2, 7], 5) ➞ [1, 2] get_indices([1, 5, 5, 2, 7], 8) ➞ []

Примечание:

  • Если элемента нет в списке, то возвращаем [] .
  • Индекс списка начинается с 0.
  • Без вложенных списков и сложных конструкций внутри списка.

Решение:

def get_indices(lst, el): return [i for i in range(len(lst)) if lst[i] == el]
def get_indices(lst, el): list = [] for i in range(len(lst)): if lst[i] == el: list.append(i) return list

Как найти индекс элемента в списке, по частичному совпадению?

Как получить индексы всех элементов, содержащих имя Анна?

  • Вопрос задан более двух лет назад
  • 951 просмотр

Комментировать

Решения вопроса 1

SoreMix

soremix @SoreMix Куратор тега Python

Собственно, нужно перебрать все элементы из списка и проверять на вхождение в каждый элемент поисковой фразы с помощью in , если фраза входит в элемент — получаем индекс элемента через List.index(element)

search = 'Анна' indexes = [index_list.index(name) for name in index_list if search in name]

Ответ написан более двух лет назад

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *