La función de Python devuelve Ninguna, no está claro por qué

Soy bastante nuevo en Python y tengo un problema que no puedo explicar. He intentado buscar a través de las respuestas del foro aquí, pero lo que estoy encontrando no coincide con mi situación. Se siente como si me estuviera perdiendo algo bastante básico, pero no lo veo (obviamente ...)

Este código funciona de la manera que espero:

<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>

Esto devuelve:

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

Que es lo que quiero.

Pensé que usar agregar y extender en la lista dentro de la función también funcionaría. Un "anexo" añadido cerca de la parte inferior del código.

<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>

Pero esto vuelve:

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

¿Por qué aparecen los "ninguno"? Gracias de antemano por cualquier ayuda o ideas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta