iteratoren rumreichen und warum kein iter.hasnext?
Verfasst: Freitag 24. April 2009, 11:57
tag,
habe zwei fragen zu iteratoren.
ich hangele mich durch ein xml (per etree.ElementDepthFirstIterator).
dabei durchläuft eine schelife den iterator und übergibt den kontextknoten an eine funktion. findet die was von interesse werden alle nachkommen des elements nicht mehr benötigt, sie lässt den iter also bis zum nächsten sibling durchlaufen.
schematisch in etwa so:
mir kommt das irgendwie seltsam vor, wie würdet ihr das machen?
2. frage:
warum gibt es kein hasnext oä?
"except StopIteration" finde ich nicht grade hübsch...
habe zwei fragen zu iteratoren.
ich hangele mich durch ein xml (per etree.ElementDepthFirstIterator).
dabei durchläuft eine schelife den iterator und übergibt den kontextknoten an eine funktion. findet die was von interesse werden alle nachkommen des elements nicht mehr benötigt, sie lässt den iter also bis zum nächsten sibling durchlaufen.
schematisch in etwa so:
Code: Alles auswählen
def skipsome(x, it):
print x
if x == 10:
while(x<15):
x=it.next()
it = iter(range(0,20))
while True:
try:
skipsome(it.next(), it)
except StopIteration:
break
2. frage:
warum gibt es kein hasnext oä?
"except StopIteration" finde ich nicht grade hübsch...