On 2017-09-17 08:50, Оlе Ѕtrеісhеr
"Peter J. Holzer"
writes: elems = [] for i in range(n): elems.append(str(i)) s = "".join(elems)
Wenn Du hier schon auf Optimierung achtest: wozu dann erst lie Liste?
Der das einer der beiden Fälle war, die ich miteinander vergleichen wollte. Und natürlich ist das ein Test-Beispiel und nichts, was so in Produktivcode irgendwo vorkommt.
Join nimmt jedes Iterable:
s = "".join(map(str, range(x)))
Ist kürzer, prägnanter,
Ja, definitiv. Aber es ist eine Änderung, die für den Vergleich irrelevant ist und daher den Leser vom Kern des Arguments ablenken würde. Daher habe ich das unterlassen.
performanter
Bei diesem trivialen Test-Beispiel: Ja. Wenn die Schleife etwas mehr macht als nur "str" aufzurufen, dürfte der Performance-Unterschied zwischen map und einer expliziten Schleife eher vernachlässigbar sein.
und deutlich effektiver im Speicher.
Nein. Ob die Liste implizit von join aufgebaut wird oder explizit vom Programmcode, macht keinen Unterschied. hp -- _ | Peter J. Holzer | Fluch der elektronischen Textverarbeitung: |_|_) | | Man feilt solange an seinen Text um, bis | | | hjp@hjp.at | die Satzbestandteile des Satzes nicht mehr __/ | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel