Работа с последовательностями как с массивами
Сохраним последовательность целых чисел в памяти, чтобы мы могли перебрать ее много раз. Будем называть такую последовательность массивом. В питоне нет типа «массив». Но есть тип 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 » «
как найти индекс второго подходящего элемента в последовательности
Здравствуйте! Помогите, пожалуйста, решить упражнение: нужно создать функцию, которая будет возвращаться индекс второго подходящего элемента последовательности. Если подходящих элементов в последовательности меньше двух или же последовательность пуста, то нужно вернуть None.
У меня есть код для нахождения индекса последовательности по значению:
1 2 3 4 5 6 7
def find_index(item, mylist): if mylist == []: return None else: i = mylist.index(item) return i print(find_index(42,[1, 2, 42, 41]))
Заранее спасибо! Буду также рада, если кто-нибудь поможет уже имеющийся код как-то более грамотно написать.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Найти индекс элемента в последовательности ЛКГ
*ЛКГ — линейный конгруэнтный генератор Дано 4 целых неотрицательных числа x0, A, B, k. Они.
Найти индекс первого наибольшего элемента целочисленной последовательности
Входящие данные: Во входном потоке в первой строке задано целое число N – количество элементов.

Найти индекс первого элемента наибольшей по длине возрастающей последовательности
Одномерный массив от 1 до 100. Найти индекс первого элемента наибольшей по длине возрастающей.
Найти индекс последнего наибольшего элемента целочисленной числовой последовательности
Найти индекс последнего наибольшего элемента целочисленной числовой последовательности. Входные.

Найти индекс первого наименьшего элемента целочисленной числовой последовательности
Найти индекс первого наименьшего элемента целочисленной числовой последовательности. Запрещенные.
Am I evil? Yes, I am!
![]()
![]()
16120 / 9755 / 2731
Регистрация: 21.10.2017
Сообщений: 21,624

Сообщение было отмечено Yana___ как решение
Решение
1 2 3 4 5 6 7 8
def find_index(item, mylist): result = 0 for i, e in enumerate(mylist): if e == item: result += 1 if result == 2: return i return None
Найти индекс первой точки в строке
Дана строка, символы s1, …, sn. Известно, что среди символов есть, по крайней мере, одна точка. Найти первый номер точки в данной последовательности.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Индекс первой точки в массиве
условие проги:"Ввести символьный массив из 15-ти или меньшего количества элементов и найти индекс.
Уничтожить в строке запятые перед первой точкой, заменить цифры 3 после первой точки
Дано строка длиной n символов, среди которых есть хотя бы одна точка. превратить.

Строки: уничтожить в строке запятые перед первой точкой, заменить знаком + все цифры 3я после первой точки
Дано строка длиной n символов, среди которых есть хотя бы одна точка. превратить.

В строке первый символ получает индекс 1, последний индекс 2, второй индекс 3, предпоследний индекс 4, третий индекс 5
В строке первый символ получает индекс 1, последний индекс 2, второй индекс 3, предпоследний индекс.
![]()
2794 / 2037 / 682
Регистрация: 02.03.2015
Сообщений: 6,509

Сообщение было отмечено AprilNevada как решение
Решение
Что новый учебный год начался? Подошли к зачётам/экзаменам?
print(s.index('.'))
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
В строке опеределить индекс первой запятой
Среди введенных символов есть по меньшей мере одна запятая. Найти номер первой по порядку комы и.

Определить индекс первой цифры в введенной строке
Например: privet1kakdela индекс цифры =7 как то так, пытаюсь написать код но получаеются.

Вывести количество цифр в строке до первой точки
Помогите, нужно написать программу чтобы она считала количество цифр до первой точки на языке Си

Выдать позицию самой первой ‘.’ (точки) в строке
Задание: нужно выдать позицию самой первой ‘.’ (точки) в строке. Вот мой код: procedure.
Определить, есть ли в строке запятая, стоящая до первой точки
Дана строка S; в ней встречается хотя бы одна точка. определить,есть ли в строке запятая,стоящая до.
Переписать символы файла до первой точки по 40 букв в строке
Описать функцию line40, которая считывает из входного файла символы до первой точки и записывает их.
Pandas: получить индекс строк, столбец которых соответствует значению
Вы можете использовать следующий синтаксис, чтобы получить индекс строк в pandas DataFrame, столбец которого соответствует определенным значениям:
df.index [df['column_name']== value ]. tolist ()
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team points rebounds 0 A 5 11 1 A 7 8 2 A 7 10 3 B 9 6 4 B 12 6 5 C 9 5 6 C 9 9 7 D 4 12
Пример 1. Получение индекса строк, столбец которых соответствует значению
В следующем коде показано, как получить индекс строк, в которых один столбец равен определенному значению:
#get index of rows where 'points' column is equal to 7 df.index [df['points']== 7 ]. tolist () [1, 2]
Это говорит нам о том, что строки со значениями индекса 1 и 2 имеют значение «7» в столбце точек.
Обратите внимание, что мы также можем использовать операторы «меньше» и «больше», чтобы найти индекс строк, в которых один столбец меньше или больше определенного значения:
#get index of rows where 'points' column is greater than 7 df.index [df['points']> 7 ]. tolist () [3, 4, 5, 6]
Это говорит нам о том, что строки со значениями индекса 3 , 4 , 5 и 6 имеют значение больше 7 в столбце точек.
Пример 2. Получение индекса строк, столбец которых соответствует строке
В следующем коде показано, как получить индекс строк, в которых один столбец равен определенной строке:
#get index of rows where 'team' column is equal to 'B' df.index [df['team']=='B']. tolist () [3, 4]
Это говорит нам о том, что строки со значениями индекса 3 и 4 имеют значение «B» в столбце команды.
Пример 3. Получение индекса строк с несколькими условиями
В следующем коде показано, как получить индекс строк, в которых значения в нескольких столбцах соответствуют определенным условиям:
#get index of rows where 'points' is equal to 7 *or* 12 df.index [(df['points']== 7 ) |(df['points']== 12 )]. tolist () [1, 2, 4] #get index of rows where 'points' is equal to 9 *and* 'team' is equal to 'B' df.index [(df['points']== 9 ) &(df['team']=='B')]. tolist () [3]
