Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2017 16:48:26

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

Всем привет
Есть такой код
matrix = [, , ]
permut_result_iter = itertools.product(*matrix)

permut_result = list(permut_result_iter)

permut_result_add =
print(permut_result_add)

Всё работает прекрасно, но если сделать matrix размером 30х30 элементов, питон не вывозит и валица с сообщением

Process finished with exit code 137 (interrupted by signal 9: SIGKILL)

Погуглил, говорят, это из-за list(permut_result_iter), типа получается слишком большой массив и процесс умирает из-за нехватки памяти или типа того.

Как можно решить эту проблему?

Офлайн

#2 Авг. 5, 2017 17:34:14

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2680
Репутация: +  182  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

А ты уверен что тебе нужен список в котором 205891132094649000000000000000000000000000000 картежей?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#3 Авг. 5, 2017 17:42:14

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

Это генератор названий для каталога товаров. Сгенерированные названия надо вывести на веб страницу (торнадо шаблон) и выкинуть в эксель.

Так что да, нужен. Ну либо надо как-то разбить его на несколько списков, но как это сделать у меня нет идей

Офлайн

#4 Авг. 5, 2017 17:48:50

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2680
Репутация: +  182  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

Зачем тебе 205891132094649000000000000000000000000000000 наименований?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#5 Авг. 5, 2017 17:58:37

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

Дано, таблица составных частей наименований
[
,
,

]

Надо сгенерить все возможное наименования товаров.


a1b1c1 a1 b1 c1
a1b1c2 a1 b1 c2
a1b1c3 a1 b1 c3
a1b2c1 a1 b2 c1
a1b2c2 a1 b2 c2

и тд

В тепличных условия 3х3 всё работает. Но в реале кол-во столбцов может доходить до 20, а строк до 100. Так что да. мне нужен этот большой список.
Мне необязательно держать его в памяти, надо отрендеритть на html-шаблоне и выкинуть в эксель. но как это сделать не приводя генератор к листу я не знаю

Офлайн

#6 Авг. 5, 2017 18:10:11

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2680
Репутация: +  182  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

У тебя места на диске не хватит что бы этот HTML записать.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Онлайн

#7 Авг. 5, 2017 18:14:53

frostspb
Зарегистрирован: 2013-04-24
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

хм, а как тогда быть?

Офлайн

#8 Авг. 5, 2017 18:29:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

frostspb
Дружище, ну если бы программирование сводилось бы к знанию синтаксиса языка, то мы бы были дико задемпингованы школотой всех мастей. Как быть? Изучать науку, которую пять лет преподают в университете. Алгоритмы, структуры данных, всякая там магия математики. Ну о чем с тобой говорить, если ты не вкуриваешь алгоритмическую сложность декартова произведения?



Офлайн

#9 Авг. 5, 2017 18:30:04

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

frostspb
хм, а как тогда быть?

Представьте вы стоите на берегу Атлантического океана и говорите хочу выпить океан, а он в меня не лезет. Что мне делать?
Что мы должны ответить?

Перестаньте хотеть.

Задача решается изменением постановки задачи. Как именно решать Вам.

Rodegast
У тебя места на диске не хватит что бы этот HTML записать.
:) :) Это несколько преуменьшено. Если верить вычислениям, то надо собрать несколько терабайтных винчестеров, точнее из терабайтных винчестеров надо собрать кучу массой в несколько сот масс солнца.





Отредактировано doza_and (Авг. 5, 2017 19:10:02)

Офлайн

#10 Авг. 6, 2017 01:03:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

itertools.product(*matrix) и большие данные

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version