Python-Funktion gibt None zurück, unklar warum

Ich bin ziemlich neu in Python und stoße auf ein Problem, das ich nicht erklären kann. Ich habe versucht, die Forumantworten hier zu durchsuchen, aber was ich finde, stimmt nicht mit meiner Situation überein. Es fühlt sich an, als würde mir etwas ziemlich Grundlegendes fehlen, aber ich sehe es nicht (offensichtlich ...)

Dieser Code läuft so, wie ich es erwartet habe:

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst+[1,1]
    else:
        return "Should never get here"

print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

Dies ergibt:

<code>>>> 
[1]
[1, 1]
[1, 1, 1]
</code>

Welches ist, was ich will.

Ich dachte, das Anhängen und Erweitern der Liste innerhalb der Funktion würde auch funktionieren. Ein "Anhang" am unteren Rand des Codes hinzugefügt.

<code>import string

mults = [1,2,3,4,6,7,9,10,12,15,16,19,21,22,24]

def factor_exp(lst):
    if lst[-1] == 1:
        lst.pop()
        return lst+[1]
    if lst[-1] == 2:
        lst.pop()
        return lst.append([1,1])
    else:
        return "Should never get here"


print factor_exp([1])
print factor_exp([2])
print factor_exp([1,2])
</code>

Aber das ergibt:

<code>>>> 
[1]
None
None
</code>

Warum erscheinen die "Keine"? Vielen Dank im Voraus für jede Hilfe oder Erkenntnisse.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage