[Python-de] strings zusammensetzen.
Stefan Behnel
python-de at behnel.de
So Sep 17 05:14:51 EDT 2017
Оlе Ѕtrеісhеr schrieb am 17.09.2017 um 10:50:
> "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?
> Join nimmt jedes Iterable:
>
> s = "".join(map(str, range(x)))
>
> Ist kürzer, prägnanter, performanter und deutlich effektiver im
> Speicher.
Bezüglich "effektiver im Speicher" möchte ich anregen, den Code zu lesen.
Intern erzeugt "".join(genexpr) zuerst eine Liste. Das passiert immer, wenn
keine Sequenz übergeben wird. Schließlich muss zweimal über diese drüber
gelaufen werden können, was bei Iteratoren nicht gegeben ist.
Ein Eckchen schneller wird map() hier wohl trotzdem sein, aber wir sollten
nicht vergessen, dass so etwas wie das Beispiel oben in der Praxis nur
*sehr* selten auftreten dürfte.
Stefan
Mehr Informationen über die Mailingliste python-de