append или extend у списка
Оба метода добавляют в список, но по-разному. Путаница приводит к «списку внутри списка».
append — добавить один элемент
append кладёт в конец списка ровно один элемент — целиком, как есть. Если это число — добавится число, если список — добавится целый список одним элементом (получится вложенный список).
extend — добавить несколько
extend принимает коллекцию и добавляет её элементы по одному в конец. Передали список [4, 5] — в исходный добавятся 4 и 5 по отдельности, а не вложенным списком. Это и есть главное отличие.
Наглядно
Если к [1, 2, 3] сделать append([4, 5]), получится [1, 2, 3, [4, 5]]. А extend([4, 5]) даст [1, 2, 3, 4, 5]. Одна буква в методе — совсем разный результат.
Как выбрать
Добавляете один объект — append. Хотите «влить» элементы другой коллекции — extend. Заметив вложенный список там, где его быть не должно, первым делом проверьте: не перепутали ли append и extend.
Частые вопросы
Что быстрее для добавления многих элементов? extend удобнее и обычно эффективнее, чем append в цикле.
Можно ли добавить в начало списка? Да, методом insert(0, элемент), но с большими списками это медленнее, чем добавление в конец.
Начать игру бесплатно