Python ma elegancki sposób automatycznego generowania zmiennej licznika w pętlach for
: funkcja enumerate
. To oszczędza potrzebę inicjowania i zwiększania zmiennej licznika. Zmienne licznika są również brzydkie, ponieważ często są bezużyteczne po zakończeniu pętli, ale ich zasięg nie jest zasięgiem pętli, więc zajmują przestrzeń nazw bez potrzeby (chociaż nie jestem pewien, czy to rozwiązuje w rzeczywistości enumerate
).Wyliczanie pythoniczne pętli while
Moje pytanie brzmi, czy istnieje podobne rozwiązanie pytonowe dla pętli while
. enumerate
nie będzie działać dla pętli while
od enumerate
zwraca iterator. Idealnie, rozwiązanie powinno być "pytonowe" i nie wymagać definicji funkcji.
Na przykład:
x=0
c=0
while x<10:
x=int(raw_input())
print x,c
c+=1
W tym przypadku chcielibyśmy, aby uniknąć inicjalizacji i inkrementacji c
.
Wyjaśnienie:
Można to zrobić z niekończącej się pętli for
z zakończeniem ręcznym jak niektórzy sugerowali, ale szukam rozwiązania, które sprawia, że kod wyraźniejsze, i nie sądzę, że rozwiązanie sprawia, że kod jest wyraźniejszy w tym przypadku.
Czy możesz podać przykład? Dlaczego musisz używać pętli while? – BrenBarn
Szukasz czegoś takiego jak [itertools.count?] (Http://docs.python.org/2.7/library/itertools.html#itertools.count) –
Czy masz na myśli, że podczas (i <100) {i ++} rodzaju pętli? – Darek