Уточнение: вы имели в виду генератор выражений не генераторы - последнее является определением функции, которое содержит хотя бы один yield
оператор / выражение.
согласен с предыдущим постером ... вы должны использовать петли for
почти для всего. я редко использую циклы while
, которые относятся к простым счетчикам или серверам, работающим с бесконечными циклами. : -)
вы также можете поместить genexp в ту же строку, что и цикл for
...
a = ["Hello", "world", "!"]
for c in (x for x in a):
print c,
... так как генэксп нельзя использовать повторно. однако, это не выглядит как читабельное. Кроме того, это противоречит цели этого упражнения. почему бы просто не перебрать себя?
for c in ["Hello", "world", "!"]:
print c,
вы уже использовали память, чтобы составить список; зачем создавать genexp, если это не nec?