palindrome

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Samstag 18. November 2006, 18:46

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
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 18. November 2006, 19:21

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Samstag 18. November 2006, 22:12

Readability counts.
BlackJack

Samstag 18. November 2006, 22:31

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))
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Samstag 18. November 2006, 23:58

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. :/
Antworten