¿No se puede adjuntar a una lista devuelta?

def f(): lst = ['a', 'b', 'c'] return lst[1:] 

por qué es f().append('a') is None == True aunque f().__class__ es y f() == ['b', 'c']

Porque append() devuelve None y no el objeto de lista. Utilizar

 l = f() l.append('a') ... 

Porque append() modifica la lista, pero no la devuelve.

Prueba esto:

 f()+['a'] 

Espero que esto ayude

En este contexto, siempre es bueno ser plenamente consciente de la diferencia entre las expresiones y los comandos. Básicamente, hay dos formas de agregar un valor x a una lista l

  1. Utilizando un comando: l.append(x) . Por lo general, un comando no devuelve ningún valor; Realiza algún tipo de efecto secundario.
  2. Usando una expresión, es decir, l+[x] que representa un valor y no hace nada. Es decir, asignas l=l+[x]