2016-10-04 14 views
1

Ich versuche, einen Iterator an eine Liste anhängen, aber mein Code unten für jeden Fall ausgewertet.Wenn elif else Blöcke für jeden Fall auswerten

Less7=Head7=Over7=[] 
i=0 

for i in range(0,10): 
    if i<7: 
     Less7.append(i) 

    elif i==7: 
     Head7=i 

    else: 
     Over7.append(i) 

Das Ergebnis erhalte ich sind: Head7 ein int-Wert von 7 ist Less7 und Over7 Listen sind - [0,1,2,3,4,5,6,7,8,9]

Meine gewünschten Ergebnisse sind:

Less7=[0,1,2,3,4,5,6] 

Head7=[7] 

Over7=[8,9] 

ich bin sicher, dass es grundlegende ist, könnten Sie mir Richtung im rechten Punkt? Mein Gedanke ist, dass es mit dem Datentyp zu tun hat. Wenn ich durch den Code gehe, wertet Head7[0,1,2,3,4,5,6] aber wenn i=7 dann den Wert korrekt zuweist, aber ich möchte es in einer Liste.

+0

@PadricCunningham, als ich das Hinzufügen der zusätzlichen leeren Listen implementiert habe, erhalte ich den Fehler AttributeError: 'tuple' Objekt hat kein Attribut 'append'. Ah Ha! Ich hatte immer noch den Zuweisungsoperator anstelle des Komas. Thx – MechMon

Antwort

0

Sie benötigen drei Listen, einen für jedes mögliche Ergebnis zu erstellen:

less_than_7, is_7, greater_than_7 = [], [], [] 

for i in range(0, 10): 
    if i < 7: 
     less_than_7.append(i) 
    elif i > 7: 
     greater_than_7.append(i) 
    else: 
     is_7.append(i) 

Less7=Head7=Over7=[] erstellt eine Liste, die von den drei Namen verwiesen wird, so die Ausgabe identisch sein würde, wie Sie Anhänge an die gleiche Liste, auch Sie sind in der ersten und letzten Fall Head7=i Sätze Head7 gleich i/7.

+0

Danke! "less_than_7, is_7, greater_than_7 = [], [], []" hat den Trick nicht gemacht, ich musste jede Aussage in eine separate Zeile setzen. – MechMon

+0

@MechMon, nicht sicher, was Sie meinen, der Code funktioniert genau wie gepostet –

+0

Sie haben 'Less7 = Head7 = Over7 = [], [], []' das ist sehr unterschiedlich zu 'less_than_7, is_7, greater_than_7 = [] , [], [] "' Man erstellt eine einzelne Liste, während die andere drei erstellt. –

Verwandte Themen