Wenn man sich wirklich darum sorgt, das man selbst oder ein Anderer beim Lesen des Codes über den Ausdruck stolpert, kann man ein Feature namens "Kommentar" nutzen, um die Codestelle zu erklären. Umwege über Strings zu nehmen, nur weil es dann verständlicher wird, halte ich für kontraproduktiv.
Und eigentlich muss man das ja auch nicht verstehen, solange man weiß, was am Ende bei raus kommt und damit rechnen kann. Wenn es den Leser
wirklich interessiert, schlägt er halt nach, was reduce() tut.
Code: Alles auswählen
someint = reduce(lambda x, y: x*10+y, somelistofints) # [1,2,3,4] --> 1234
Und fürs Verständnis: reduce() tut das folgende:
Ich finde map() und filter() übrigens weitaus überflüssiger, als reduce(). Im Gegensatz zu reduce() kann man diese zwei nämlich problemlos durch LCs ersetzen. Wenn es um die Geschmacksfrage "LG gegen generator" geht, muss man also dazu sagen, um welche Generatoren es sich handelt. reduce() ist ziemlich sinnvoll, wenn man seine Funktion einmal kapiert hat.