Unnötige If else statments vermeiden

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.
Antworten
friedduck
User
Beiträge: 76
Registriert: Montag 23. Juli 2012, 20:41

Hallo,

wie könnte ich in dem Beispielcode die vielen if elif else statments vermeiden?

Code: Alles auswählen

vals = {'autos': ['ferrari', 'porsche', 'vw', 'audi'],
          'motorrad': ['bmw', 'yamaha', 'sonstnochwas']
          }

for entry in vals:
    for subentry in vals[entry]:
        if entry == 'autos':
            if subentry == 'audi':
                print '%s: sehr schönes auto' % entry
            #u.s.w
        elif entry == 'motorrad':
            if subentry == 'yamaha':
                print '%s: jo, würde mir auch gefallen' % entry
            #u.s.w   
Ich geh pennen.

Vielen Dank im voraus.
BlackJack

@friedduck: Die Sätz mit den entsprechenden Fahrzeugen in der Datenstruktur speichern. Zum Beispiel aus den Listen der Fahrzeugmarken eine Liste mit Tupeln (Fahrzeugname, Satztemplate) machen, oder ein Wörterbuch.

Ansonsten hätte man den Test auf 'auto' oder 'motorrad' vor die innere Schleife ziehen können. Macht ja wenig Sinn das immer wieder zu testen, wo der Wert doch für alle Elemente der inneren Schleife gleich bleibt.

Die äussere Schleife könnte man ausserdem gleich über `vals.iteritems()` machen wenn man den Wert zum Schlüssel auf jeden Fall braucht.
Antworten