Ich versuche, Iteratoren mehr für das Schleifen zu verwenden, da ich hörte, dass es schneller ist als Index-Schleifen. Eine Sache, über die ich mir nicht sicher bin, ist, wie man das Ende der Sequenz gut behandelt. Die Art, wie ich mir vorstellen kann, ist die Verwendung von try
und except StopIteration
, die für mich hässlich aussieht.Wie elegant ich Python-Iteratoren verwenden kann
Um konkreter zu werden, nehmen wir an, wir werden gebeten, die zusammengeführte sortierte Liste der zwei sortierten Listen a
und b
zu drucken. Ich würde folgendes schreiben:
aNull = False
I = iter(a)
try:
tmp = I.next()
except StopIteration:
aNull = True
for x in b:
if aNull:
print x
else:
if x < tmp:
print x
else:
print tmp,x
try:
tmp = I.next()
except StopIteration:
aNull = True
while not aNull:
print tmp
try:
tmp = I.next()
except StopIteration:
aNull = True
Wie würden Sie es kodieren, um es sauberer zu machen?
Was ist 'b' gemeint? – detly
Dieser Code ist fast unleserlich. Beschreibe, was es tun soll. –
a und b sind zwei sortierte Listen. Die Aufgabe besteht darin, die Elemente dieser beiden Listen in nicht abnehmender Reihenfolge zu drucken. – nos