Друзья, давайте обсудим интересное поведение операторов + и += при работе со списками.



С помощью оператора + мы можем соединять (конкатенировать) только списки. Мы не можем к списку прибавить произвольный итерируемый объект (кортеж, строку и т.д).



С другой стороны, используя оператор +=, мы можем добавлять в список значения из любого итерируемого объекта. По сути, оператор += для списков преобразуется в вызов списочного метода extend(), который, как мы знаем, работает с любым итерируемым объектом.



Это не баг — это просто особенность, которую нужно знать. Сам Гвидо (создатель языка Python) сказал, что ему не нравится такое несимметричное поведение операторов + и += и он хотел бы его изменить, но не будет этого делать из-за обратной совместимости.



Исходный код типа данных list доступен по ссылке, он написан на С++. 🤠



#полезныйматериал