Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для YurichBRO
8 / 6 / 2
Регистрация: 07.01.2021
Сообщений: 74

Помогите исправить программу! Работа со списками

11.01.2021, 13:34. Показов 983. Ответов 5

Студворк — интернет-сервис помощи студентам
Определите, сколько списке элементов, которые больше двух своих соседей.

Python
1
2
3
4
5
6
a=list(map(int, input().split()))
count=0
for i in range(1,len(a)):
    if a[i]>a[i-1] and a[i]>a[i+1]:
        count+=1
print(count)
Выдает:
line 4, in <module>
if a[i]>a[i-1] and a[i]>a[i+1]:
builtins.IndexError: list index out of range

Я так и не понял, где индекс выходит из диапазона. Укажите пожалуйста на мою ошибку!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2021, 13:34
Ответы с готовыми решениями:

Работа со списками, адресами - исправить ошибку
Задание: работа со списками... подскажите ошибку в данной функции. int Look(struct spisok *start, int index) { int i;struct spisok...

Помогите, пожалуйста! Работа со списками!
Используя 10 стержней, длинами 8,8,10,10,12,12,14,14,16,16, можно сложить множество всяческих треугольников. Доказать, что из данного...

Работа с матрицей. Помогите исправить ошибки.
Еще раз привет всем, есть задание: Дана матрица размера nxn (самостоятельно выбрать размерность и заполнить программно). Вычислить...

5
 Аватар для Dr_Balontotis
35 / 21 / 14
Регистрация: 01.01.2021
Сообщений: 52
11.01.2021, 13:44
Лучший ответ Сообщение было отмечено YurichBRO как решение

Решение

ваша вина:
*массивы начинаются с 0
*массивы заканчиваются на len-1
*если i равно 0, то i-1 составляет -1, а в массиве нет -1
*если длина массива равна 6, то i равно 5 в конце, а i + 1 составляет 6, в массиве нет 6

a --> list -> {a,f,g,h}
-------------> 0 1 2 3


Python
1
2
3
4
5
6
7
8
9
10
11
12
a=list(map(int, input().split()))
count=0
for i in range(0,len(a)):
    if i == 0 and a[i]>a[i+1]: #не смотри на предыдущий
        count+=1
    elif i== len(a)-1 and a[i]>a[i-1]: # Это последний, просто посмотрите на предыдущий, не смотрите на следующий
        count+=1
 
    elif a[i]>a[i-1] and a[i]>a[i+1]: #это посередине. Посмотрите на обе стороны
        count+=1
    
print(count)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.01.2021, 13:45
не знаю как ты код пишешь но полезно представлять код в голове ну или дебаггер юзать
Цитата Сообщение от YurichBRO Посмотреть сообщение
for i in range(1,len(a)):
то есть i будет от 1 до 3 (не включая 3) для списка из 3 элементов

Цитата Сообщение от YurichBRO Посмотреть сообщение
and a[i]>a[i+1]:
на максимальном i=2 a[i+1] будет a[3] но в списке всего 3 элемента -вот и выход из диапазона
1
 Аватар для YurichBRO
8 / 6 / 2
Регистрация: 07.01.2021
Сообщений: 74
11.01.2021, 13:55  [ТС]
Я сам понял и нашел ошибку, ведь длина списка на 1 больше индекса последнего в списке элемента.
Python
1
2
3
4
5
6
a=list(map(int, input().split()))
count=0
for i in range(1,len(a)-1):
    if a[i]>a[i-1] and a[i]>a[i+1]:
        count+=1
print(count)
Добавлено через 7 минут
Welemir1, у меня пока не хватает практики, я пишу с помощью экранной клавиатуры, сломалась нормальная, потому ускорить темп и кол-во практики пока не могу. Я и сам додумался, но забыл, что индекс последнего элемента в списке не совпадает с длиной.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
11.01.2021, 14:10
Цитата Сообщение от Dr_Balontotis Посмотреть сообщение
*если i равно 0, то i-1 составляет -1, а в массиве нет -1
Python
1
2
3
4
5
6
7
8
9
10
[1, 2, 3][-1]
3
[1, 2, 3][-2]
2
[1, 2, 3][-3]
1
[1, 2, 3][-4]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: list index out of range
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
11.01.2021, 19:18
Dr_Balontotis, небольшая поправочка
Цитата Сообщение от Dr_Balontotis Посмотреть сообщение
*если i равно 0, то i-1 составляет -1, а в массиве нет -1
есть
Python
1
2
3
4
5
6
>>> lst = [1,2,3,4,5,6,7]
>>> lst[0]
1
>>> lst[-1]
7
>>>
ну а в остальном все верно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2021, 19:18
Помогаю со студенческими работами здесь

Помогите исправить программу
Надо чтоб программа генерировала случайные цифры от 100 до 300 а потом записывала их в файл вот исходник все перепробывал, но в файле...

Помогите исправить программу.
Помогите плиз чото не работает Program Laba_4; Var a,L,S,V: real; ch: char; err :bool;{buleva zminna dla viznachenna nevirnogo...

Помогите исправить программу
Помогите пожалуйста! мне нежно что бы солнце над сданием ходило по горизонтале, а не так как у меня в программе... unit Unit1; ...

Помогите исправить программу
Найти предел функции с точностью до е f1731.jpg-воть предел... программу ужо делал но преподователь утверждает что неправильно но...

помогите исправить программу
uses crt,GraphABC; var gm,gd:integer; procedure fig(x,y,a:integer); begin if a&gt;3 then begin bar(x-a,y-a,x+a,y+a); fig(x-2*a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru