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

Не работает метод sum() в функции

09.10.2016, 20:23. Показов 3942. Ответов 5

Студворк — интернет-сервис помощи студентам
Всем добрый день! Решал задачу по преобразованию из многоуровнего списка в одноуровневый. Столкнулся с такой проблемой что код:
Python
1
2
array = [1, [2, 2, 2], 4]
print(sum(array, []))
и код:
Python
1
2
3
4
5
6
def flat_list(array):
    a = sum(array, [])
    return a
 
 
flat_list([1, [2, 2, 2], 4])
работают совершенно по-разному. Точнее первый - работает как мне нужно, а второй не работает совсем. После около получаса скитаний по просторам интернета в поисках ответов и способов разрешения этого вопроса, я решил попробовать решить эту задачу другим способом:
Python
1
2
3
4
5
6
7
8
9
10
def flat_list(array, res = []):
    for i in array:
        if isinstance(i, list):
            flat_list(i)
        else:
            res.append(i)
    return res
 
 
flat_list([1, [2, 2, 2], 4])
Но этот вариант функции, которая вызывает сама себя, тоже поставил меня в тупик. Дело в том, что при выполнении программы return срабатывает дважды(и более раз в зависимости от количества уровней в списке) и я так и не смог разобраться куда поместить return или как это грамотно оформить. В итоге возникает 2 вопроса:
1. Как работает функция sum() в функциях?
2. Как разместить return в моем коде так, чтобы получить только результат от окончательной работы функции, без промежуточных?
Огромное спасибо за помощь!
P.S: Так как я в Python не так давно, возможны ошибки в трактовке проблемы и употреблении некоторых терминов, за что прошу прощения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2016, 20:23
Ответы с готовыми решениями:

Непонятно работает метод valarray<int>.sum()
Создал класс который хранит данные в типе valarray&lt;int&gt;. Нужно чтобы выводилась сумма значений что там хранятся. Использовал функцию...

Как добавить в sql столбец для разницы двух sum из разных таблиц: sum(A)-sum(B)
Прошу помощи в решении следующей задачи: Сервер Interbase 2009 (обязательно, посколько есть рабочая база). Таблицы: ...

Вычислить рекурсивно сумму чисел от 1 до n, по формуле sum(n) = sum(n, 2) + sum(n-1, 2)
Вычислить рекурсивно сумму чисел от 1 до n, по формуле sum(n) = sum(n, 2) + sum(n-1, 2), где n – целое положительное число, sum(n, a) = n +...

5
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
09.10.2016, 21:14
1. Точно так же как и вне функций
0
0 / 0 / 0
Регистрация: 09.10.2016
Сообщений: 2
09.10.2016, 21:55  [ТС]
Я написал что функция sum() работает по-разному в функции и вне функции и подкрепил примерами. Сейчас мне пишут что она работает точно так же как и вне функций. Я ничего не понимаю и хотелось бы конкретики.
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.10.2016, 01:47
Цитата Сообщение от alfa22 Посмотреть сообщение
Я написал что функция sum() работает по-разному в функции и вне функции и подкрепил примерами.
Приведите примеры с выходными данными. Ваши программы вообще не работают
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
10.10.2016, 09:43
Цитата Сообщение от alfa22 Посмотреть сообщение
print(sum(array, []))
Интересно, что тут имелось в виду?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
10.10.2016, 11:41
dondublon, Вот это
Python
1
2
>>> print(sum([[1, 2, 3], [4, 5, 6]], []))
[1, 2, 3, 4, 5, 6]
Добавлено через 13 минут
Цитата Сообщение от alfa22 Посмотреть сообщение
и подкрепил примерами
Это не примеры, а не рабочий код
Цитата Сообщение от alfa22 Посмотреть сообщение
array = [1, [2, 2, 2], 4]
print(sum(array, []))
Python
1
2
3
4
5
>>> array = [1, [2, 2, 2], 4]
>>> print(sum(array, []))
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
Python
1
2
3
4
5
6
7
8
9
10
>>> def flat_list(array):
...     a = sum(array, [])
...     return a
...     
>>> flat_list([1, [2, 2, 2], 4])
 
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 2, in flat_list
TypeError: can only concatenate list (not "int") to list
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2016, 11:41
Помогаю со студенческими работами здесь

=Sum([BYN]) не работает под терминалом, если запустить нормально - все работает. ПОЧЕМУ ?
в общем разделил базу могу сидеть в lan сети и использовать таблицы по сети редактируя морду. Все работает нормально но привязка к...

Напиши программу, которая вызывает метод sum с параметрами 2 и 2
/* Вызов метода Помогите пожалуйста Напиши программу, которая вызывает метод sum с параметрами 2 и 2 */ public class Solution...

Sum не работает
Привет. Появилась проблема . Делаю курсовой проект - веб-приложение на asp.net mvc . Требуется подсчитать сумму. Изначально все...

int sum не работает
Доброго всем! int sum не работает.... Проблема не самая сложная но мне не по зубам :-[ Когда в Edit1 ввожу цифры 999 999 999 он...

Не работает функция SUM
Привет народ,подскажите почему функция не считает сумму премий сотрудников,а просто выдает их значение


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru