Не удается добавить к возвращаемому списку?

#python

#python

Вопрос:

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

почему, f().append('a') is None == True хотя f().__class__ это <type 'list'> и f() == ['b', 'c']

Комментарии:

1. Оцените это: [].append('a')

Ответ №1:

Потому что append() возвращает None , а не объект list. Использовать

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

Комментарии:

1. 1: Для этого требуется ответ типа #StdPython_2. Методы, которые изменяют объект (почти), никогда не возвращают значение. pop() является заметным исключением.

Ответ №2:

Потому что append() изменяет список, но не возвращает его.

Ответ №3:

Попробуйте это:

 f() ['a']
  

Надеюсь, это поможет

Ответ №4:

В этом контексте всегда полезно полностью осознавать разницу между выражениями и командами. В принципе, есть два способа добавить значение x к списку l

  1. С помощью команды: l.append(x) . Обычно команда не возвращает никакого значения; она выполняет какой-то побочный эффект.
  2. Используя выражение, а именно l [x] которое обозначает значение и ничего не делает. Т.е. вы присваиваете l=l [x]