[Python-de] strings zusammensetzen.

Peter J. Holzer hjp-usenet3 at hjp.at
So Sep 17 08:19:01 EDT 2017


On 2017-09-17 08:50, Оlе Ѕtrеісhеr <ole-usenet-spam at gmx.net> wrote:
> "Peter J. Holzer" <hjp-usenet3 at hjp.at> 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?

Weil 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 at hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel


Mehr Informationen über die Mailingliste python-de