798просмотров
42.6%от подписчиков
18 февраля 2026 г.
questionScore: 878
Почему list.append() быстрее и правильнее, чем +=? Многие пишут так: result = [] for x in data: result += [x] Работает. Но это не лучший вариант.
Правильнее так 👇
result = [] for x in data: result.append(x) В чём разница? append() добавляет элемент на место, без создания нового списка.
+= фактически делает расширение списка (аналог extend()), а если написать так:
result = result + [x] то создаётся новый список на каждой итерации. Почему это важно?
В циклах разница становится заметной.
# медленнее
result += [x]
# быстрее
result.append(x) При больших объёмах данных – это уже не микрооптимизация. Частая ошибка новичков ❌
result += x # если x не список → TypeError += ожидает итерируемый объект.
append() добавляет один элемент.
Когда нужен extend()?
Если добавляем несколько элементов сразу:
result.extend([1, 2, 3])
Аналог:
result += [1, 2, 3] Но для одного элемента — всегда append(). Краткое правило
• Добавляешь 1 элемент → append()
• Добавляешь много элементов → extend()
• Пишешь += [x] → почти всегда можно сделать лучше