Мне просто интересно, что следующий фрагмент кода не работает, что должно инициализировать пустой список и «на лету» добавить начальное значение. Второй фрагмент работает. Что с этим не так? Существует ли наилучшая практика для такой инициализации?Лучшая практика добавления значения в пустой список
>>> foo = [].append(2)
>>> print foo
None
>>> foo = []
>>> foo.append(2)
>>> print foo
[2]
EDIT: Кажется, у меня возникло недоразумение в синтаксисе. Как уже указывалось ниже, append всегда возвращает None в качестве результата. Сначала я подумал, что [] вернет пустой объект списка, где append должен поместить в него первый элемент и, в свою очередь, присваивает список foo. Это было неправильно.
Так почему бы не просто использовать 'foo = [2]'? Нет необходимости вообще называть 'append', когда вы можете напрямую указать начальные значения. 'list.append()' изменяет список на месте, поэтому всегда возвращает 'None'. –
То, что вы пытаетесь напечатать, это '[] .append (2)', а не 'foo'. 'foo = [2]' или 'foo = []; foo.append (2) 'будет делать. – raymelfrancisco
@raymelfrancisco Спасибо, что ответили на мой простой вопрос. Я не могу объяснить, почему это должно быть уменьшено. Некоторые люди, возможно, уже искали знания при кормлении грудью. Благодарю. – ferdy