О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