Автор: CoolPython
Один интересный факт из Python. Вы, наверное, знали, что для строк определен оператор умножения и что можно делать так:
>>> 'привет ' * 4 'привет привет привет привет '
То же, вообще говоря, работает с другими контейнерами, например, с кортежами:
>>> ('привет',) * 3
('привет', 'привет', 'привет') И с этим все хорошо, пока внутри контейнера не появляется ссылка на изменяемый объект. Например, на словарь:
>>> d = [{'key': 'val'}] * 2
>>> d
[{'key': 'val'}, {'key': 'val'}] Потому что теперь каждый из двух словарей доступен по одной и той же ссылке:
>>> d[0]['key'] = ''
>>> d
[{'key': ''}, {'key': ''}] Упс, отстрелили себе ногу. Умножение — это валидный способ создавать составные объекты только если вложенные неизменяемы.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…