2014-07-22 21 views
10

Jak uzyskać dostęp do indeksu bieżącego elementu w obiekcie iterator w języku Python?Uzyskaj indeks obiektu iteratora pytonu

Na przykład przy użyciu wyrażenia regularnego funkcja finditer, w jaki sposób można uzyskać dostęp do indeksu iteratora w pętli for.

Odpowiedz

15

Iteratory nie zostały zaprojektowane do indeksowania (pamiętaj, że leniwie produkują swoje przedmioty).

Zamiast tego można użyć enumerate numerowania elementów, ponieważ są one produkowane:

for index, match in enumerate(it): 

Poniżej jest wykazanie:

>>> it = (x for x in range(10, 20)) 
>>> for index, item in enumerate(it): 
...  print(index, item) 
... 
0 10 
1 11 
2 12 
3 13 
4 14 
5 15 
6 16 
7 17 
8 18 
9 19 
>>> 

pamiętać, że można również określić liczbę, aby rozpocząć liczenie pod adresem:

>>> it = (x for x in range(10, 20)) 
>>> for index, item in enumerate(it, 1): # Start counting at 1 instead of 0 
...  print(index, item) 
... 
1 10 
2 11 
3 12 
4 13 
5 14 
6 15 
7 16 
8 17 
9 18 
10 19 
>>> 
Powiązane problemy