⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать функцию, которая принимает список из цифр, которые являются одним числом. Ей необходимо добавить к числу 1. В результате функция возвращает список из цифр.
Примеры:
add_one([1, 2, 3, 4]) -> [1, 2, 3, 5]
add_one([9, 9, 9, 9]) -> [1, 0, 0, 0, 0]
add_one([0]) -> [1]
add_one([9]) -> [1, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая принимает список из цифр, которые являются одним числом. Ей необходимо добавить к числу 1. В результате функция возвращает список из цифр.
Примеры:
add_one([1, 2, 3, 4]) -> [1, 2, 3, 5]
add_one([9, 9, 9, 9]) -> [1, 0, 0, 0, 0]
add_one([0]) -> [1]
add_one([9]) -> [1, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Модуль collections. Класс OrderedDict
Мы уже рассказывали про модуль collections, а если конкретнее — класс Counter. В этот раз разберём OrderedDict.
OrderedDict — словарь, особенный тем, что все ключи находятся в том же порядке, в котором и добавлялись.
Подробнее о данном классе можете почитать тут.
#миниурок #collections
Мы уже рассказывали про модуль collections, а если конкретнее — класс Counter. В этот раз разберём OrderedDict.
OrderedDict — словарь, особенный тем, что все ключи находятся в том же порядке, в котором и добавлялись.
popitem()
— Возвращает и удаляет последний элемент из упорядоченного списка. move_to_end(key)
— перемещает ключ в конец. Если передан параметр last, перемещает ключ в начало.Подробнее о данном классе можете почитать тут.
#миниурок #collections
⚡️ Оператор yield
yield — оператор, позволяющий создавать генераторы. Благодаря нему функция может вернуть сразу несколько значений.
Записывается он вместо return, принимая число, которое должна вернуть функция.
Если же обычный метод возвращает какое-то значение, то генератор возвращает себя, благодаря чему мы можем пройтись по нему используя циклы или функцию
#теория #итераторы
yield — оператор, позволяющий создавать генераторы. Благодаря нему функция может вернуть сразу несколько значений.
Записывается он вместо return, принимая число, которое должна вернуть функция.
Если же обычный метод возвращает какое-то значение, то генератор возвращает себя, благодаря чему мы можем пройтись по нему используя циклы или функцию
next()
.#теория #итераторы
⚡️ Задачка с собеседования | #Medium
Условие:
Ваша задача — написать функцию, которая "переворачивает" биты в числе. Кол-во битов в чисел всегда 32.
Примеры:
reverse_bits(43261596) -> 964176192
00000010100101000001111010011100 -> 00111001011110000010100101000000
reverse_bits(4294967293) -> 3221225471
11111111111111111111111111111101 -> 10111111111111111111111111111111
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая "переворачивает" биты в числе. Кол-во битов в чисел всегда 32.
Примеры:
reverse_bits(43261596) -> 964176192
00000010100101000001111010011100 -> 00111001011110000010100101000000
reverse_bits(4294967293) -> 3221225471
11111111111111111111111111111101 -> 10111111111111111111111111111111
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Модуль collections. Класс deque
Раннее мы писали про Counter и OrderedDict, настало время поговорить про deque.
deque — класс, предоставляющий двойную очередь (то есть элементы можно брать и с начала и с конца). Его основное преимущество над списком — скорость при изменении размера. Добавление и удаление элементов имеет O(1), а у списка — O(n).
#миниурок #collections
Раннее мы писали про Counter и OrderedDict, настало время поговорить про deque.
deque — класс, предоставляющий двойную очередь (то есть элементы можно брать и с начала и с конца). Его основное преимущество над списком — скорость при изменении размера. Добавление и удаление элементов имеет O(1), а у списка — O(n).
append(x)
, appendleft(x)
— добавляет элемент в конец/начало.pop()
, popleft()
— возвращает и удаляет элемента с конца/начала очереди.rotate(n=1)
— перемещает n объектов с конца в начало очереди#миниурок #collections
⚡️ Модуль collections. Тип namedtuple
Часто, используя кортежи, мы берём значения с помощью индексаторов (квадратных скобочек), что выглядит не особо красиво и совсем непонятно для другого программиста.
Чтобы исправить эту проблему, Python разработчики придумали namedtuple, который предоставляет тип кортежа, в котором данные можно получить как атрибуты.
#миниурок #collections
Часто, используя кортежи, мы берём значения с помощью индексаторов (квадратных скобочек), что выглядит не особо красиво и совсем непонятно для другого программиста.
Чтобы исправить эту проблему, Python разработчики придумали namedtuple, который предоставляет тип кортежа, в котором данные можно получить как атрибуты.
namedtuple(typename, field_names)
— создаёт тип кортежа с именем typename
и атрибутами field_names
, и возвращает тип.#миниурок #collections
⚡️ Редактируем видео
Модуль moviepy позволяет быстро и просто обрабатывать видео: склеивать, обрезать, сжимать, переворачивать и выполнять множество других операций.
Установка:
Стоит отметить, что модуль использует процессор, а не видеокарту для рендера. Поэтому, если вам нужно больше мощностей воспользуйтесь выделенными серверами с большей производительностью.
Если он вас заинтересовал, то можете посмотреть парочку примеров её работы.
#миниурок #moviepy
Модуль moviepy позволяет быстро и просто обрабатывать видео: склеивать, обрезать, сжимать, переворачивать и выполнять множество других операций.
Установка:
pip install moviepy
Библиотека требует от пользователя минимум кода и имеет хорошую документацию, поэтому освоить её не составит труда. На примере выше мы просто склеиваем два видео в одно и рендерим его.Стоит отметить, что модуль использует процессор, а не видеокарту для рендера. Поэтому, если вам нужно больше мощностей воспользуйтесь выделенными серверами с большей производительностью.
Если он вас заинтересовал, то можете посмотреть парочку примеров её работы.
#миниурок #moviepy
⚡️ Задачка с собеседования | #Easy
Условие:
Ваша задача — написать функцию, которая проверяет, правильно ли записаны скобочки в полученной строке. Строка состоит только из символа "(" и ")", никаких проверок делать не нужно.
Примеры:
solution('()') -> True
solution(')()') -> False
solution('(') -> False
solution('(())((()())())') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая проверяет, правильно ли записаны скобочки в полученной строке. Строка состоит только из символа "(" и ")", никаких проверок делать не нужно.
Примеры:
solution('()') -> True
solution(')()') -> False
solution('(') -> False
solution('(())((()())())') -> True
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Итераторы и генераторы
Если вы подписаны на канал довольно давно, то, наверное, уже слышали эти слова, но что они значат?
Итератор — объект, по которому можно «пройтись» с помощью цикла. map, filter, zip, все они возвращают итераторы, как и итерируемые объекты (list, set, dict). Основной их особенностью является наличие метода
Генератор — тот же самый итератор, но «пройтись» по нему можно только один раз. Его используют, например, при создании генераторных списков. Ещё генераторами являются функции, которые используют yield.
#теория
Если вы подписаны на канал довольно давно, то, наверное, уже слышали эти слова, но что они значат?
Итератор — объект, по которому можно «пройтись» с помощью цикла. map, filter, zip, все они возвращают итераторы, как и итерируемые объекты (list, set, dict). Основной их особенностью является наличие метода
__next__
.Генератор — тот же самый итератор, но «пройтись» по нему можно только один раз. Его используют, например, при создании генераторных списков. Ещё генераторами являются функции, которые используют yield.
#теория