Seite 2 von 2

Verfasst: Samstag 18. November 2006, 18:46
von sape
BlackJack hat geschrieben:Ist ``x += 1`` zu viel Tipparbeit?
[...]
^^ Neine natürlich nicht Jack und darum geht es ja nicht ;) Es gibt ein par Situationen, da würde ich mir die pre- und postfix variante wünschen.

Mal ein Beispiel (Ich weiß das Beispiel ist schlecht und in Wirklichkeit würde ich enumerate benutzen, aber wie gesagt ist nur ein Beispiel :) )

Code: Alles auswählen

table = ["spam1", "spam2", "spam3"]
cntr = 0
ntable = []

for string in table:
    ntable.append([cntr, string])
    cntr += 1
So, mit der Postfix-Inkrement könnte man sich eine Zeile sparen, weil erstmal der aktuelle wert an die Funktion übergeben wird und danach ein Inkrement stattfindet ;)

Code: Alles auswählen

for string in table:
    ntable.append([cntr++, string])
lg

Verfasst: Samstag 18. November 2006, 19:21
von Leonidas
XtraNine hat geschrieben:(Ich weiß das Beispiel ist schlecht und in Wirklichkeit würde ich enumerate benutzen, aber wie gesagt ist nur ein Beispiel :) )
Ich glaub an dieser Stelle gibt es kaum ein Sinnvolles Beispiel denn wie du selbst feststellst - selbst für diesen Fall bietet Python mit enumerate() etwas besseres an.

Die Vorteile sind einfach zu gering um einen zusätzlichen Operator zu rechtfertigen, so war es schon ein größerer Streitpunkt mit den Dekoratoren und deren Pie-Syntax.

Verfasst: Samstag 18. November 2006, 22:12
von birkenfeld
Readability counts.

Verfasst: Samstag 18. November 2006, 22:31
von BlackJack
Eben. Das Argument "da kann man eine Zeile sparen" zieht nur wenn es dadurch lesbarer wird.

Und wenn man wirklich Zeilen sparen will, dann bitte mit `enumerate()`.

Code: Alles auswählen

table = ['spam1', 'spam2', 'spam3']
new_table = map(list, enumerate(table))

Verfasst: Samstag 18. November 2006, 23:58
von sape
Jack, ich meinte ja bereits das ich das im Normalfall mit enumerate machen würde. Das war ja nur ein Beispiel, weil mir auf die schnelle kein anderes eingefallen ist. :/