def f():
lst = [\'a\', \'b\', \'c\']
return lst[1:]
why is f().append(\'a\') is None == True even though f().__class__
In this context it's always good to be fully aware of the difference between expressions and commands. There are basically two ways to append a value x to a list l
l.append(x). Usually a command doesn't return any value; it performs some kind of side-effect.l+[x] which stands for a value and does nothing. I.e. you assign l=l+[x]Because append() modifies the list, but does not return it.
Try this:
f()+['a']
Hope this helps
Because append() returns None and not the list object. Use
l = f()
l.append('a')
...