2016-05-14 5 views
0

Ich versuche, meine Liste zwischen ungeraden und geraden Zahlen aufzuteilen. Bisher ist mein Code:Listenelemente werden nicht zu einer neuen Liste hinzugefügt (Python)

odds = [] 
evens = [] 
new_list = [1, 4, 2, 6, 5, 3, 7] 
for index in new_list: 
    if index % 2 == 0: 
     evens += [index] 
    else: 
     odds += [index] 

Allerdings, wenn ich drucken die Evens Liste es in None führt. Ich habe die Nummern einzeln gedruckt, wie in:

und die geraden Zahlen drucken. Warum werden sie nicht zur Evens-Liste hinzugefügt?

Die ungeraden Zahlen fügen Sie der Liste ohne Probleme hinzu.

Edit:

die volle Funktion ist:

def evens_at_end(list1): 
    odds = [] 
    evens = [] 
    list2 = [3,4,5,9] 
    for index in list1: 
     if index % 2 == 0: 
      evens += [index] 
     else: 
      odds += [index] 

    new_list = list2 + evens 

return new_list 

mit liste1 ist [1, 4, 2, 6, 5, 3, 7]

+3

Funktioniert gut für mich außer Ihre "else" -Zeile ist falsch eingerückt. – Selcuk

+0

oh, habe ich nicht bemerkt. Danke, dass du es mir gesagt hast :) –

+0

Wie druckst du die Liste? Wenn ich einfach 'print evens' nach deinem Code hinzufüge, funktioniert es. Setzen Sie diesen Code in eine Funktion und vergessen Sie vielleicht, 'evens 'zurückzugeben? –

Antwort

1

eine Liste Comprehensions Verwendung

evens = [x for x in list1 if x % 2 == 0] 
odds = [x for x in list1 if x not in evens] 
+0

oh danke! Das hat mein Problem gelöst! :) –

Verwandte Themen