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

2

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.

¡Gracias! Esto ayuda. user1376401
Mira esta documentación:docs.python.org/tutorial/datastructures.html... Si no dice específicamente que devuelve algo, entonces puede asumir que devuelve Ninguno. tabchas

Tu respuesta

1   la respuesta
6

No estudié tu código, pero diría que es para esta línea:

<code>return lst.append([1,1])
</code>

list.append() siempre vuelveNone.

Asi quelst.append([1,1]) adjuntará[1,1] alst y volverNone.

Estoy de acuerdo, esto es un error común, solía pensar quelist.append devolvería el artículo adjunto también. jamylak
Ok, gracias. Esto lo explica claramente. user1376401

Preguntas relacionadas