Подтвердить что ты не робот

List + = Tuple vs List = List + Tuple

Скажем, у меня есть следующие задания:

points = []
point = (1, 2)

Как получилось:

points += point

Он работает отлично, и дает мне очки = [1, 2]. Однако, если я делаю что-то вроде:

points = points + point

Он дает мне TypeError: может только список конкатенации (а не "кортеж" ) для списка. Разве эти утверждения не являются одними и теми же?

4b9b3361

Ответ 1

Разница заключается в том, что list += эквивалентен list.extend(), который принимает любой итерабельный и расширяет список, он работает как кортеж, является итерабельным. (И расширяет список на месте).

С другой стороны, второй присваивает новый список points и пытается связать список с кортежем, который не выполняется, поскольку он неясно, каковы ожидаемые результаты (список или кортеж?).