Одна из причин использовать генератор состоит в том, чтобы сделать решение более ясным для некоторых решений.
другой должен рассматривать результаты по одному, избегая создания огромных списков результатов, которые Вы обработали бы разделенный так или иначе.
, Если у Вас есть функция fibonacci-up-to-n как это:
# function version
def fibon(n):
a = b = 1
result = []
for i in xrange(n):
result.append(a)
a, b = b, a + b
return result
можно более легко записать функцию как это:
# generator version
def fibon(n):
a = b = 1
for i in xrange(n):
yield a
a, b = b, a + b
функция более ясна. И если Вы используете функцию как это:
for x in fibon(1000000):
print x,
в этом примере, при использовании версии генератора, целые 1 000 000 списков объекта не будут созданы вообще, всего одно значение за один раз. Это не имело бы место при использовании версии списка, где список будет создан сначала.
Единственное, что вам не хватает (кроме использования индексов на основе 1), - это явное приведение ссылки на ячейку к диапазону:
Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
int endRow = 5;
int endCol = 6;
for(int idxRow = 1; idxRow <= endRow; idxRow++)
{
for(int idxCol = 1; idxCol <= endCol; idxCol)
{
((Excel.Range)activeSheet.Cells[idxRow, idxCol]).Value2 = "Kilroy wuz here";
}
}