Добрый день! Я новичок в Python (да и в программировании в принципе) и у меня возникла сложность с созданием функции генерации списков. Я сейчас пытаюсь сделать себе что-то на подобии автопрогнозов для портфельных инвестиций и мне нужно создать списки со всеми возможными вариантами распределения долей между акциями (исключая варианты когда доли распределены между меньшим количеством акций), причем количество акций может быть разным.
Как пример приведу вариант с 3-мя акциями и шагом долей в 0.25:
1: |0.00|0.00|1.00|0.00|0.25|0.25|0.25|0.25|0.50|0.00|0.50|0.50|0.00|0.75|0.75|
2: |0.00|1.00|0.00|0.25|0.00|0.75|0.25|0.50|0.25|0.50|0.00|0.50|0.75|0.00|0.25|
3: |1.00|0.00|0.00|0.75|0.75|0.00|0.50|0.25|0.25|0.50|0.50|0.00|0.25|0.25|0.00|
Я никак не могу придумать как генерировать подобные списки для различного колическва акций например для 4-ех:
[[0.97, 0.01, 0.01,0.01],[0.96,0.02,0.01,0.01]...[0.01,0.01,0.01,0.97]]
Был бы очень благодарен за помощь!
UPD: Спасибо
Domini снова за напоминание что читать документацию полезнее, чем задавать тупые вопросы, я смог решить свою проблему довольно легко просто внимательно почитав, но у меня остался вопрос, можно ли увеличить производительность, потому что компьютер просто виснет на генерации.
вот код:
from itertools import *
li = []
for i in count(0.00, 0.05):
li.append(i)
if i > 1.0:
break
arr = []
for x in product(li, repeat=3):
if sum(x) == 1.0:
arr.append(x)
else:
pass
print arr