Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 12.06.2023
Сообщений: 1

Удаление смежных чисел

12.06.2023, 12:10. Показов 2740. Ответов 5

Студворк — интернет-сервис помощи студентам
Реализовать функцию, которая принимает на вход список чисел, а возвращает модифицированную версию этого списка, в которой удалены повторы соседних элементов. Например, если передать функции на вход список [5, 5, 1, 5, 5, 7, 7, 7], то она должна вернуть [5, 1, 5, 7].

Я написал следующий код, но он выдает ошибку IndexError: list index out of range
Пытался исправить условиями, но не получалось.

Python
1
2
3
4
5
6
7
8
9
10
11
def remove_adjacent_solution(l): 
    if len(l) == 0: 
        return []
    elif len(l) == 1:
        return l
    m = len(l)
    for i in range (1, m):
        while l[i]==l[i-1] :
            del l[i-1]
            m = len(l)
    return l
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2023, 12:10
Ответы с готовыми решениями:

Word Удаление смежных дубликатов строк
Добрый день! Помогите с кодом, плиз! В Word есть табличка в 1 столбец. Нужно удалить дубликаты строк, но только в том случае, если они...

Найти в массиве тройку смежных чисел с максимальной суммой.
считает только сумму первых трех элементов, а должен считать макс.сумму трех смежных элементов. ...

Найти в массиве тройку смежных чисел с максимальной суммой
Исходные данные: массив чисел Х размером n. Условие: Ввести исходный массив с клавиатуры, вывести его на экран в виде строки....

5
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
12.06.2023, 12:18
нельзя удалять элементы списка в цикле начиная с начала. функция range возврашвет индексы списка от 0 до его длины. когда вы удаляете элемент длина списка укорачивается и индексы сдвигаются но в range это не изменяется в результате у вас и ошибка выхода за пределы индекса. и результат неверный будет. удаляйте с конца
Python
1
for i in reversed(range (1, m)):
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.06.2023, 12:24
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
for i in range(m - 1, -1, -1):
1
34 / 20 / 9
Регистрация: 29.08.2015
Сообщений: 87
12.06.2023, 12:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
lst = [5, 5, 1, 5, 5, 7, 7, 7]
 
def ras(lst):
    i = 0
    while i<len(lst)-1:
        if lst[i]==lst[i+1]:
            lst.pop(i)
            i -= 1
        i += 1
    return lst
    
print (ras(lst))
1
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
12.06.2023, 12:44
Yaroslav-, ivitaliy, Почему ваши функции меняют исходный список?
Цитата Сообщение от Yaroslav- Посмотреть сообщение
Реализовать функцию, которая принимает на вход список чисел, а возвращает модифицированную версию этого списка,
В ТЗ написано вернуть модифицированную версию списка. Там конечно явно не указано, что оригинальный список нельзя "ломать", но все же....
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lst = [5, 5, 1, 5, 5, 7, 7, 7]
 
 
def remove_adjacent_solution(data):
    result = []
    current = None
    for i in data:
        if i != current:
            result.append(i)
            current = i
    return result
 
 
print(remove_adjacent_solution(lst))
1
34 / 20 / 9
Регистрация: 29.08.2015
Сообщений: 87
12.06.2023, 13:14
Чем удаление из исходного списка не превращает его в "модифицированную версию этого списка"? Так можно сказать, что и про создание нового списка ничего не говорилось, мы модифицировали существующий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2023, 13:14
Помогаю со студенческими работами здесь

KP580. найти наибольшее число, полученное при сложении смежных чисел,заданных в массиве
Написать программу на языке assembler для процессора КР580, найти наибольшее число, полученное при сложении смежных чисел,заданных в...

Не могу сложить пары смежных чисел в новом массиве, не знаю как записать и укажите на ошибки в коде
using System; namespace лаб6 { class Program { static double GetAvg(int a) { double sum =...

Удаление из списка натуральных чисел x всех чисел, кратных k
Помогите реализовать функцию (DEL1 k x), которая удаляет из списка натуральных чисел x все числа, кратные k.

Замена чисел в строке словами и удаление чисел из строки
Помогите,пожалуйста, переделать программу, никак не разберусь с ассмеблером((. Приведенный код вставляет слово number перед каждым...

Подсчет смежных элементов
Вводится кол-во строк и столбцов с клавиатуры, затем они заполняются символами '#'. Затем некоторые элементы заменяются на случайное...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru