wenn ich mich auf Spoj.pl an den dortigen Problemen mühe, versuche ich bevorzugt, den Code in Python 3 zu erstellen. Dabei fällt mir des öfteren vor die Füße, dass die neueren Python-Version an vielen Stellen auf iterator setzen (etwa range(), map()), wo bislang Listen verwndet wurden.
Häufig benötige ich in meinem Program aber auch die Länge von Mengen, die durch die iterator gebildet werden. Wenn ich dann eine Typ-Konvertierung in eine Liste erzwinge, habe ich immer das Gefühl, den Vorteil der iteratoren zu "verschenken".
Wie würde man geschickt vorgehen? Hier im Forum habe ich dazu zwar Beiträge gefunden, aber keine, die dazu eine Empfehlung oder einen Trick beinhalten...
Beispielcode:
Code: Alles auswählen
def calc_setsum(numbers):
numbers = list(numbers)
mul = sum(numbers)
setsum = (1<<(len(numbers)-1)) * mul
return str(setsum % 1000000007)Daft
