ich eine Generatorfunktion schreibe, die mich Alpha-Zeichen gibt, wie so,über Werte in einer Generatorfunktion Skipping
def gen_alphaLabels():
a = range(65,91)
for i in a:
yield chr(i)
k = gen_alphaLabels()
for i in range(26):
print k.next(),
Dies ergibt,
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Dies funktioniert ....
Ich würde die Funktion, um einige Zeichen, die in einer donotInclude-Liste zu überspringen. Ich konnte tun dies außerhalb des Generators ist, wie so,
k = gen_alphaLabels()
donotInclude = ['D','K','J']
for i in range(26):
r = k.next()
if r not in donotInclude:
print r,
Dies ergibt das gewünschte Ergebnis Überspringen ‚D‘, ‚K‘ und ‚J‘
A B C E F G H I L M N O P Q R S T U V W X Y Z
Gibt es eine Möglichkeit umfassen die Logik in Bezug auf das Überspringen von Zeichen in der Generatorfunktion? Manche Dinge entlang der Linien von
def gen_alphaLabels():
a = range(65,91)
for i in a:
r = chr(i)
if r in donotInclude:
yield self.next()
else:
yield r
Eine Notiz auf einem Teil des Codes, die nicht direkt auf Ihre Frage in engen Zusammenhang steht: Um Verbraucher Ihres Generator sollten Sie tun 'für c wahrscheinlich in get_alphaLabels(): print c,' anstatt auf einer Reihe Looping und manuell 'next() 'aufrufen. Dies ist wichtig, wenn Ihr Generator eine unbekannte Anzahl von Werten liefert! – Blckknght