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

Очень нужна помощь в написании класса для создания списка

09.05.2025, 18:00. Показов 1171. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие:
Саша и Даша очень любят использовать списки в Python. К сожалению, обычный list
уже не приносит им того удовольствия. Поэтому они решили добавить в свою
программистскую жизнь новых красок и создать свой список FunnyList! Особенность
этого списка заключается в том, что метод append() добавляет число не в конец, а в
начало списка (весь остальной функционал списка(list) должен остаться нетронутым).
Так как Саша и Даша еще только начинают разбираться в объектно-ориентированном
программировании, то они просят вас помочь им написать класс FunnyList!

Пример 1:
Ввод:
Python
1
2
3
4
5
funny_list = FunnyList()
funny_list.append(10)
funny_list.append(11)
funny_list.append(12)
print(*funny_list)
Вывод:
12 11 10

Пример 2:
Ввод:
Python
1
print(*sorted(funny_list))
Вывод:
10 11 12

Пример 3:
Ввод:
Python
1
print(*FunnyList()
Вывод:
1 2 3

Совет:Используйте наследование классов

Лучшее что получилось

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class FunnyList(list):
    def __init__(self, iterable):
         super().__init__(str(item) for item in iterable)
    def __setitem__(self, index, item):
         super().__setitem__(index, str(item))
 
    def insert(self, index, item):
         super().insert(index, str(item))
 
    def append(self, item):
         super().insert(0, str(item))
 
    def extend(self, other):
         if isinstance(other, type(self)):
              super().extend(other)
         else:
              super().extend(str(item) for item in other)
 
 
funny_list = FunnyList('')
 
funny_list.append(10)
funny_list.append(11)
funny_list.append(12)
 
print(*funny_list)
print(*sorted(funny_list))
print(*FunnyList())
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2025, 18:00
Ответы с готовыми решениями:

Задача "Очередная задача про победу над монстрами". ОЧЕНЬ нужна помощь с кодом
Здравствуйте. Вот сама задача: Очередная задача про победу над монстрами ограничение по времени...

Изучение возможности инициализации объектов класса с помощью конструкторов и уничтожение их с помощью деструкторов
Помогите пожалуйста с помощью класса функций,если не трудно и с объяснением Цели: Изучение...

Проверить, возможно ли получить все элементы заданного списка, из какого-либо другого списка с помощью одного среза
Вам дается список индексов. Вы должны проверить, возможно ли получить все элементы, указанные в...

4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
09.05.2025, 18:44
Как вариант:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class FunnyList(list):
    def __init__(self, iterable=()):
         super().__init__([item for item in iterable])
         
    def __setitem__(self, index, item):
         super().__setitem__(index, item)
 
    def insert(self, index, item):
         super().insert(index, item)
 
    def append(self, item):
         super().insert(0, item)
 
    def extend(self, other):
         if isinstance(other, type(self)):
              super().extend(other)
         else:
              super().extend([item for item in other])
 
 
funny_list = FunnyList('')
 
funny_list.append(10)
funny_list.append(11)
funny_list.append(12)
 
print(*funny_list)
print(*sorted(funny_list))
print(*FunnyList())
0
 Аватар для ViachaslauK
126 / 185 / 16
Регистрация: 08.10.2024
Сообщений: 665
10.05.2025, 10:19
Цитата Сообщение от Catstail Посмотреть сообщение
Как вариант:
А зачем для переопределения конкретного метода переопределять __init__ и __setitem__? на что это повлияет? В контексте задачи?
и для append зачем? достаточно же и
Python
1
2
3
4
class FunnyList(list):
 
    def append(self, item):
        self.insert(0, item)
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
10.05.2025, 10:47
ViachaslauK, я просто взял код ТС и убрал откровенную чушь.
1
 Аватар для ViachaslauK
126 / 185 / 16
Регистрация: 08.10.2024
Сообщений: 665
10.05.2025, 10:59
Цитата Сообщение от Catstail Посмотреть сообщение
я просто взял код ТС и убрал откровенную чушь.
Понятно, я если честно даже не гланул на код в стартпосте, каюсь. Забыл уже и лень искать, тут меня обозвали любителем Дзэна, но тут он как нельзя лучше - простое лучше сложного)
В данном случае super() вообще не нужен, потому что мы полностью переопределяем поведение родителя, а не используем его функционал и расширяем. Это скорее даже ошибка была бы - непонимание метода super() для класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2025, 10:59
Помогаю со студенческими работами здесь

Нужна помощь в создании автокликера на питоне
Здраствуйте, у меня есть такой код но я не знаю как впихнуть в него 4 задачи и скорее всего он не...

Нужна помощь по коду для создания матрицы
Программа на питоне должна создать такую матрицу

Списки, списки, списки. не все так просто
Написать функцию, которая принимает 2 списка, содержащие одинаковое число строк, затем изменяет...

Наименьшее число в списке, наибольшее число в списке, количество чисел в списке
Составить программу, которая получает на вход последовательность целых чисел, и печатает на экране:...

Написание функции, которая принимает на вход строку и наполняет списки
Пожалуйста помогите в решении: Есть два пустых списка: word_list и marks_list. Напиши функцию,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru