Seite 1 von 1

Unnötige If else statments vermeiden

Verfasst: Dienstag 26. Februar 2013, 00:12
von friedduck
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.

Re: Unnötige If else statments vermeiden

Verfasst: Dienstag 26. Februar 2013, 00:23
von 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.