Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/58: Рейтинг темы: голосов - 58, средняя оценка - 4.83
6 / 4 / 2
Регистрация: 19.10.2018
Сообщений: 102

Как в программе заменить функция append

24.11.2018, 20:23. Показов 12124. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять, можно ли еще каким либо образом добавлять в списки какие-то значение без функции 'append' (Препод придирается, говорит мол пока нельзя пользоваться функциями.)

Вот как допустим заменить 'append' в данной программе ?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 a = []
num = 0
while True:
    if(num == 9):
        break
    score = int(input('Выставить балл от 1 до 10: '))
    num += 1
    if(score in range(11)):
        a.append(score)
sort = sorted(a)
rinych = sort[1:-1]
quantity = len(rinych)
summa = 0
for i in range(quantity):
    summa += rinych[i]
ar = summa / quantity
print(ar)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2018, 20:23
Ответы с готовыми решениями:

Что можно сказать о равенстве значений следующих выражений: (append x (append y z) (append (append x y) z)
помогите, пожалуйста!! 1)Что можно сказать о равенстве значений следующих выражений: (append x (append y z)) (append (append x y) z)

Функция .append и .attr, не все работает, подскажите как
есть функция $("#add").click(function() { $('#sortable').append('<a href="http://'+$('#addlink') ...

Надо заменить функцию rewrite на append
Помогите пожалуйста заменить функцию rewrite на append в процедуре sozd. Или же скажите как можно сделать так чтобы слово в конец файла...

22
 Аватар для Semen-Semenich
5226 / 3472 / 1174
Регистрация: 21.03.2016
Сообщений: 8,299
24.11.2018, 20:35
Лучший ответ Сообщение было отмечено rina_shym как решение

Решение

Python
1
a + [score]
1
0 / 0 / 0
Регистрация: 18.07.2021
Сообщений: 9
18.07.2021, 14:57
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
18.07.2021, 15:14
rina_shym, добавить можно и так
Python
1
2
3
4
5
x = [1, 2, 3, 12, 15, 18]
n = len(x)
i = n//2
x.insert(i, 50)
print(x)
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
20.07.2021, 10:25
Dax, метод insert() не лучший вариант( если вы используете инсёрт вы явно делаете, что то не так), необходима операция присваивания срезу:
Python
1
a[len(a):]=[score]
Изменяется сам список a также быстро, как при использовании append.

Добавлено через 1 минуту
a[:0]=[score] - для добавления в начало списка.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.07.2021, 10:49
Цитата Сообщение от AlexMarkov Посмотреть сообщение
метод insert() не лучший вариант( если вы используете инсёрт вы явно делаете, что то не так)
Обоснуй
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.07.2021, 10:56
Цитата Сообщение от rina_shym Посмотреть сообщение
Не могу понять, можно ли еще каким либо образом добавлять в списки какие-то значение без функции 'append'
AlexMarkov, ТС просил вариант, я дал ему вариант, но, это не значит, что сам я не пользуюсь иными вариантами, кроме того, который дал, да и, к тому же, я не отстаиваю то, что .append лучше\ хуже, и т.д.
Человек спросил, как это сделать, я постарался ответить.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
20.07.2021, 11:14
Все дело в частом изменении индексов элементов списка. Встроенный тип list не оптимизирован для совершения частых вставок в начало списка. При осуществлении частых вставок элементов в начало списка или любое другое место (кроме конца списка), ваш код будет значительно притормаживать. Лучше применять двустороннюю очередь collections.deque(). Тем более данный тип позволяет расширять начало списка другим списком.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.07.2021, 11:19
AlexMarkov, метод хорош запомню
Python
1
a[len(a):]=[score]
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
20.07.2021, 23:32
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Изменяется сам список a также быстро, как при использовании append.
Глупость: O(N + M) - совсем не быстро, в отличие от амортизированного O(1). Proof строка Set Slice.
И двусторонняя очередь вообще не подходит для добавления в ее середину, т. к. индексация в двусвязном списке O(N).
Так что мимо кассы.
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
21.07.2021, 08:33
Arsegg, вы про что сейчас? Я кассой давно не пользуюсь, мне "бабло" от вас не надо). Кто говорил вообще про добавление в середину, когда рассказывается про метод append(). Ваш профессиональный сленг на меня не действует, я вышел из того возраста когда
иностранными словами заменялась русская речь. Из контекста содержимого была вырвана фраза и на основании ее было составлено опровержение совсем другой решаемой задаче.

Добавлено через 12 минут
Я не буду спорить, так как это бессмысленно, все зависит от поставленной задачи. Я ещё раз повторюсь, доверяю только общеизвестным, авторитетным и признанным источникам.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
21.07.2021, 10:41
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Кто говорил вообще про добавление в середину
Цитата Сообщение от AlexMarkov Посмотреть сообщение
При осуществлении частых вставок элементов в начало списка или любое другое место (кроме конца списка),
Действительно. Какая середина? Всего лишь любое другое место, кроме конца и начала списка))
Цитата Сообщение от AlexMarkov Посмотреть сообщение
Я ещё раз повторюсь, доверяю только общеизвестным, авторитетным и признанным источникам.
Т. е. теперь официальный сайт документации Python теперь не общеизвестный, не авторитетный и не признанный источник?
1
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
21.07.2021, 10:45
Arsegg, вы говорите про insert(),а вырезка о методе append()(про пост выше). Сейчас вы приводите аргументы наоборот, без комментариев. С insert() сложная ситуация и зависит от конкретного случая.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
21.07.2021, 10:49
Цитата Сообщение от AlexMarkov Посмотреть сообщение
на основании ее было составлено опровержение совсем другой решаемой задаче.
Выше я уже показал, что это вообще не опровержение. И какая была задача изначально? Добавление значения в список - ни слова о двусторонних очередях (двусвязных списках).

Добавлено через 1 минуту
Цитата Сообщение от AlexMarkov Посмотреть сообщение
С insert() сложная ситуация и зависит от конкретного случая.
Элементарная ситуация: O(N) - проверяется capacity массива, сдвигается все элементы вправо, пишется элемент в освободившееся место.

Добавлено через 1 минуту
Цитата Сообщение от rina_shym Посмотреть сообщение
Вот как допустим заменить 'append' в данной программе ?
Обычные list-comps'ы без всякой "ереси" в виде collections.deque и list.insert.
0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
21.07.2021, 10:50
Arsegg, если бы официальный сайт Python был руссифицирован, да он был бы общепризнанным, а так он общепризнан только англоговорящей аудиторией. То что вы говорите, если это действительно присутствует в официалке, опять ваша интерпретация или особенности перевода.
0
21.07.2021, 10:53

Не по теме:

Цитата Сообщение от AlexMarkov Посмотреть сообщение
если бы официальный сайт Python был руссифицирован, да он был бы общепризнанным, а так он общепризнан только англоговорящей аудиторией.
Тут мои полномочия все!

0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
21.07.2021, 11:08

Не по теме:

Arsegg, попал в затруднительную ситуацию - не знаю какой смайлег тут более уместен - лол или рукалицо...


0
21.07.2021, 12:09

Не по теме:

iSmokeJC, полагаю такой:

Кликните здесь для просмотра всего текста

0
21.07.2021, 12:10

Не по теме:

Это было бы смешно, если бы не было так грустно.

0
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
21.07.2021, 12:42

Не по теме:


Arsegg, я не сомневаюсь в ваших способностях, просто всему свое время, если я буду работать с внутренней логикой реализации данных методов, я продолжу дискуссию, а так у меня задачи другого характера в данный момент. Для новичков замена функции append() слайдами с len(), самый лучший вариант убить двух зайцев, и понять, что такое срезы и изучить дополнительные функции, а потом на практике и на курсах, я действительно никогда не видел чтобы использовали insert(), показывать примером в учебном материале такую информацию не дальновидная перспектива развития читателей поста.


Вопрос ТС звучал о замене метода списка append(), почему здесь пример со вставкой дополнительного значения в середину списка ума не приложу. Даже с точки зрения ответа на вопрос не правильно, не мог умолчать о данном факте, прошу прощения таков я.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.07.2021, 12:42
Помогаю со студенческими работами здесь

[HomeLisp] Не найдена функция APPEND
Очень часто сталкивался с этой проблемой и решал переписыванием своих функций (т.е. заменой append на что-то другое). Есть какой-нибудь...

String одна функция вместо erase+append
Всем привет. Поискал, вроде нет такой функции, но вдруг есть. const string::size_type position = wbuffer.find_last_of(L'\\'); ...

Форматирование строк для записи в файл. Функция append() и циклы
Добрый вечер! С питоном начала разбираться совсем недавно и у меня возникла проблема при записи информации в файл. Модуль на питоне...

Как Заменить в программе ноль
Дан массив размера N. Вычислить среднее арифметическое и кол – во отрицательных элементов массива. Заменить в исходном массиве все нули –...

как можно заменить строки в программе?
как можно заменить строки 5 и 6 в : 1 /* copy string2 to string1 */ 2 void strcopy(char string1, char string2) 3 { 4 int i = 0; ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru