Копирование объектов
При стандартном присваивании обычно новый объект не создается, а лишь копируется ссылка на уже имеющийся. Если использовать
Если же использовать
При стандартном присваивании обычно новый объект не создается, а лишь копируется ссылка на уже имеющийся. Если использовать
copy.copy(), произойдет поверхностное копирование, т.е. создастся новый объект, но его ссылки на другие объекты будут те же.Если же использовать
copy.deepcopy(), то получатся "настоящие" копии объекта и всех его ссылок.Рекурсия и Фибоначчи
Python, как и большинство других языков, даёт возможность вызова функции в теле самой этой функции. Такой принцип работы называется рекурсией.
В примере вы можете наблюдать функцию, которая использует рекурсию для вычисления чисел из ряда Фибоначчи — это ряд чисел, в котором первые два числа являются 0 и 1, а каждое последующее число — сумма двух предыдущих.
Программа годится как учебный пример, однако на больших числах начинает зависать и медленно работать — требуется оптимизация.
Python, как и большинство других языков, даёт возможность вызова функции в теле самой этой функции. Такой принцип работы называется рекурсией.
В примере вы можете наблюдать функцию, которая использует рекурсию для вычисления чисел из ряда Фибоначчи — это ряд чисел, в котором первые два числа являются 0 и 1, а каждое последующее число — сумма двух предыдущих.
Программа годится как учебный пример, однако на больших числах начинает зависать и медленно работать — требуется оптимизация.
Распаковка массива
Иногда возникает необходимость красиво и быстро вывести содержимое массива (например, в задачах на хакатонах). Для этого поможет оператор
Причем тут оператор * — не просто синтаксический сахар, так как без фиксированной длины списка было бы невозможно передать элементы списка как отдельные аргументы.
Иногда возникает необходимость красиво и быстро вывести содержимое массива (например, в задачах на хакатонах). Для этого поможет оператор
*.Причем тут оператор * — не просто синтаксический сахар, так как без фиксированной длины списка было бы невозможно передать элементы списка как отдельные аргументы.
Перечисления
Перечисление (enumeration) — это набор имён, привязанных к уникальным неизменным значениям. Python поддерживает работу с перечислениями, с их помощью удобно хранить списки констант.
Члены одного перечисления можно сравнивать, а также обходить с помощью циклов. Подробнее о перечислениях можно почитать в документации: https://docs.python.org/3/library/enum.html
Перечисление (enumeration) — это набор имён, привязанных к уникальным неизменным значениям. Python поддерживает работу с перечислениями, с их помощью удобно хранить списки констант.
Члены одного перечисления можно сравнивать, а также обходить с помощью циклов. Подробнее о перечислениях можно почитать в документации: https://docs.python.org/3/library/enum.html
Применение функций по условиям
Знакомый тернарный оператор можно использовать и с функциями. Пример на картинке.
Знакомый тернарный оператор можно использовать и с функциями. Пример на картинке.
Вычисление размера объектов
Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью
Функция
Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью
sys.getsizeof().Функция
getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.Функция reduce
Модуль functools раскрывает функциональные возможности Python. Например, в нём есть интересная функция reduce, последовательно применяющая функцию-аргумент к элементам списка, возвращая при этом в итоге единичное значение.
В примере мы используем функцию для последовательного сложения элементов списка.
Модуль functools раскрывает функциональные возможности Python. Например, в нём есть интересная функция reduce, последовательно применяющая функцию-аргумент к элементам списка, возвращая при этом в итоге единичное значение.
В примере мы используем функцию для последовательного сложения элементов списка.
Операторы множеств
Множество — это неупорядоченная коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды.
Помимо обычных методов, у множеств реализована поддержка различных операторов: объединение, пересечение, симметрическая разность, обычная разность и некоторые другие.
Примеры этих операторов можете посмотреть выше на картинке.
Множество — это неупорядоченная коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды.
Помимо обычных методов, у множеств реализована поддержка различных операторов: объединение, пересечение, симметрическая разность, обычная разность и некоторые другие.
Примеры этих операторов можете посмотреть выше на картинке.