ок, не мислите ли обаче, че като поддържаме извиквания от типа на
list(permutations([1,2,3]))
малко се разваля идеята за
генератори;
Никой не е казал, че така ще го викаме винаги.
А доколкото разбрах Ангел е имал следния проблем (написано за друга задача,
за да няма подсказване - трябва да се генерират [1]
и после
[1, 2]
):
def yield12():
l = [1]
yield l
l.append(2)
yield l
for x in yield12():
print(x)
# [1] [1, 2]
print(list(yield12()))
# [[1, 2], [1, 2]]
генерира всички възможни суми (като списък)
Сега като се замисля вярно може да се тълкува двусмислено, макар и трудно -
ще го оправя в условието.
Идеята е че сумите са представени като списък, а не като tuple или set...
Всичките ви функции трябва да са lazy!
13.05.2009