Работа с последовательностями как с массивами
Сохраним последовательность целых чисел в памяти, чтобы мы могли перебрать ее много раз. Будем называть такую последовательность массивом. В питоне нет типа «массив». Но есть тип 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 Куратор тега Python
Собственно, нужно перебрать все элементы из списка и проверять на вхождение в каждый элемент поисковой фразы с помощью in , если фраза входит в элемент — получаем индекс элемента через List.index(element)
search = 'Анна' indexes = [index_list.index(name) for name in index_list if search in name]
Ответ написан более двух лет назад