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

Реализовать через enumerate

13.12.2022, 13:11. Показов 848. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как переделать с помощью enumerate

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
def sump(*args):
    amin = 0
    amax = 0
    if args:
        for i in args:
            if i > args[amax]:
                amax = args.index(i)
            elif i < args[amin]:
                amin = args.index(i)
 
        return sum([i for i in args[amin+1:amax:]])
 
    else:
        return None
 
 
if __name__ == "__main__":
    print(sump())
    print(sump(3, 5, 7, 12, 13, 10))
Не очень понимаю
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 def sump(*args):
    amin = 0
    amax = 0
    if args:
        for index, i in enumerate(args):
            if i > args[amax]:
                amax = args.index(i)
            elif i < args[amin]:
                amin = args.index(i)
 
        return sum([i for i in args[amin+1:amax:]])
 
    else:
        return None
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2022, 13:11
Ответы с готовыми решениями:

List,Enumerate
Всем ку!Не понимаю как обращаться к индексу в enumerate когда я разделаю текст\слово создал 2 переменные index value в цикле for и мне...

enumerate и range
На Юнглинукс и в учебнике оттуда есть такой текст. Не могли бы Вы объяснить это более простым и понятным способом? &gt;&gt;&gt; r_obj =...

Заменить range на enumerate
как можно записать данную задачу через enumerate,решение через range есть,но необходимо именно через enumerate. Дано предложение....

5
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
13.12.2022, 13:59
Лучший ответ Сообщение было отмечено eMoushen как решение

Решение

eMoushen, если не оптимизировать остальное:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def sump(*args):
    amin = 0
    amax = 0
    if args:
        for index, i in enumerate(args):
            if i > args[amax]:
                amax = index
            elif i < args[amin]:
                amin = index
 
        return sum([i for i in args[amin+1:amax:]])
 
    else:
        return None
3
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
13.12.2022, 14:00
Лучший ответ Сообщение было отмечено eMoushen как решение

Решение

Python
1
2
3
4
5
for index, i in enumerate(args):
    if i > args[amax]:
        amax = index
    elif i < args[amin]:
        amin = index
2
0 / 0 / 0
Регистрация: 24.10.2021
Сообщений: 53
13.12.2022, 14:51  [ТС]
Vigilant Mole, в смысле не оптимизировать остальное ?
0
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
13.12.2022, 16:43
eMoushen,
1. я бы сохранял мин. и макс. значения в переменных, чтобы не индексировать массив в каждой итерации;
2. для sum не требуется List Comprehension, можно сам срез;
3. если индекс минимума окажется больше индекса максимума, их надо перевернуть, иначе срез будет пуст;
4. последний else не нужен, процедура возвращает None по умолчанию.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def sump(*args):
    if args:
        imin = imax = 0       # индексы
        amin = amax = args[0] # значения
        for idx, i in enumerate(args):
            if i > amax:
                imax = idx
                amax = i
            elif i < amin:
                imin = idx
                amin = i
        if imin > imax:
            imin, imax = imax, imin
        return sum(args[imin+1:imax])
Остается еще вопрос - если максимумов несколько, какой брать: первый найденный (как сейчас) или ближайший к минимуму? Например список:
8,5,8,3,1
Сложить нужно 5,8,3 или только 3?
3
2 / 2 / 0
Регистрация: 06.10.2022
Сообщений: 34
13.12.2022, 19:39
Vigilant Mole, Да пусть так останется, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2022, 19:39
Помогаю со студенческими работами здесь

Переопределение окружения enumerate
Как в latex переопределить окружение enumerate так, чтобы нумерация производилась римскими числами?

Enumerate как в Python
Доброго всем времени суток! На днях столкнулся с необходимостью использовать в теле цикла как значение так и его индекс в...

Что делает функция Enumerate()?
Господа,может кто-нибудь доступно объяснить,что делает это функция &lt;enumerate()&gt;.Предупреждаю сразу,я ламер,так что, пожалуйста,...

Зачем нужна функция enumerate?
Если нам нужны индексы элементов списка A, то пишем for i in range(0,len(A)): если не нужны, то for a in A: Тогда какой...

Как изменить for in range на функцию enumerate
#!/usr/bin/env python3 # -*- coding: utf-8 -*- if __name__ == '__main__': U = D = V = S = for i in...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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