Вчерашняя задача была короткой, но интересной и как оказалось сложной. Правильно ответили всего 9 человек из 33-х, что равно 27%.

Код задачи:

numbers = [1, 2, 3]
numbers.append(*[4, 5])

print(numbers)

Разбор задачи Сперва пройдёмся по строкам.

Сначала объявляем переменную numbers и присваиваем ей список чисел [1, 2, 3].

Затем у переменной numbers вызываем метод .append(), передав в него распакованный список [4, 5].

В конце вызываем функцию print(), передав в неё переменную numbers для вывода результата.

Что могло пойти не так? Функции в Python принимают два вида аргументов: позиционные и ключевые. В нашем случае, мы передаём в метод .append() один позиционный аргумент - список [4, 5], однако, затем мы применяем к нему распаковку. Мы уже писали про работу распаковки в разборе задачи "Найди ошибку №2".

Всё дело в том, что, когда применяется распаковка, все элементы передаются как отдельные аргументы, в связи с чем и получаем ошибку TypeError, поскольку метод .append() принимает только один позиционный аргумент, а мы ему передаём два.