On 2017-08-25 07:45, Hermann Riemann wrote:> Was ist besser?
a b und c enthalten strings.
d=a+b+c besser als d="{}{}{}".format(a,b,c) ?
Die zweite Variante ist das übliche Idiom, wenn es um die Kombination von Strings geht. Ein Vorteil ist auch, dass man sieht, dass das Ergebnis `d` ein String ist. Die erste Variante hat wiederum den Vorteil, dass sie kürzer und etwas übersichtlicher ist. Es ist offensichtlich, dass `a`, `b` und `c` so beschaffen sind, dass man sie "addieren" kann. Bei der der zweiten Variante könnten `a`, `b` und `c` auch alle möglichen Objekte sein, die sich in einen String umwandeln lassen (was in Python praktisch immer der Fall ist). Die in einem anderen Beitrag genannte Variante mit `"".join` würde ich hier nicht nehmen. Diese Variante wäre aber die erste Wahl, wenn man viele Strings verbinden will, die dann sehr wahrscheinlich auch in einer Liste oder einem anderen Iterable vorliegen werden. Über die Laufzeit würde ich mir erst mal keine Gedanken machen. Ob man diese Codestelle optimieren muss oder ob ganz andere Stellen im Code einen viel größeren Einfluss haben, zeigt sich erst später beim Profiling.
der hier nicht an Lesbarkeit denkt.
Ich aber. :-) Lesbarkeit ist meiner Meinung nach ein Kriterium, das man immer berücksichtigen sollte. Damit meine ich _nicht_, dass sich der Lesbarkeit immer alle anderen Kriterien unterordnen sollte. Ich denke, ich würde in meinem Code die zweite Variante verwenden. Viele Grüße Stefan