[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