Быстрая сортировка

Что нужно сделать Реализуйте алгоритм быстрой сортировки (её называют сортировкой Хоара). За один шаг алгоритма выполните следующие действия: Пример с разбором алгоритма выше (как сработала рекурсия) С [9, 9] всё просто. Элементов меньше или больше опорного нет, поэтому рекурсия не пойдёт глубже, а вызов рекурсии по списку [9, 9] быстро завершится и вернёт этот же список (его и не нужно было сортировать). С [5, 4, 2, … Читать далее

Список списков 2

Что нужно сделать Вы уже работали с многомерными списками и решали задачи, где с помощью list comprehensions «выпрямляли» многомерные списки в один. Однако такой фокус не пройдёт, если у элементов разные уровни вложенности и этих списков неограниченное количество. Дан такой список: Напишите рекурсивную функцию, которая раскрывает все вложенные списки, то есть оставляет только внешний список. Подсказка: можно возвращать списки и срезы списков. Что … Читать далее

Продвинутая функция sum

Что нужно сделать Как вы знаете, в Python есть полезная функция sum, которая умеет находить сумму элементов списков. Но иногда базовых возможностей функций не хватает для работы и приходится их усовершенствовать. Напишите свою функцию sum, которая должна быть более гибкой, чем стандартная функция sum. Она должна уметь: Основной код оставьте пустым или закомментированным (используйте его только для тестирования). Примеры вызовов функции: Что … Читать далее

Глубокое копирование

Что нужно сделать Вы сделали для заказчика структуру сайта по продаже телефонов: Заказчик рассказал своим коллегам на рынке, и они тоже захотели такой сайт, только для своих товаров. Вы посчитали, что это лёгкая задача, и быстро принялись за работу. Напишите программу, которая запрашивает у клиента, сколько будет сайтов, а затем запрашивает название продукта и после каждого запроса выводит на экран активные сайты. Условия: структуру … Читать далее

Поиск элемента 2

Что нужно сделать Пользователь вводит искомый ключ. Если он хочет, то может ввести максимальную глубину — уровень, до которого будет просматриваться структура. Напишите функцию, которая находит заданный пользователем ключ в словаре и выдаёт значение этого ключа на экран. По умолчанию уровень не задан. В качестве примера можно использовать такой словарь: Пример 1: Пример 2: Что оценивается

Challenge 2

Что нужно сделать Вдохновившись мотивацией Антона, ваш друг тоже решил поставить перед собой задачу, но не сильно связанную с математикой, а именно: написать функцию, которая выводит все числа от 1 до num без использования циклов. Помогите другу реализовать такую функцию. Пример работы программы: Что оценивается

Своя функция zip

Что нужно сделать В самом конце собеседования вас неожиданно спросили: «Расскажите, что делает функция zip?». Чтобы произвести впечатление, вы решили не только рассказать про неё, но и написать её аналог. Даны строка и кортеж из чисел. Напишите программу, которая создаёт генератор из пар кортежей «символ — число». Затем выведите на экран сам генератор и кортежи. Пример: Дополнительно: создайте полный аналог функции zip — сделайте так, чтобы программа работала с любыми итерируемыми … Читать далее

Контакты 3

Что нужно сделать Мы уже помогали Степану с реализацией телефонной книги на телефоне, однако внезапно оказалось, что книге не хватает ещё одной полезной функции: поиска. Напишите программу, которая бесконечно запрашивает у пользователя действие, которое он хочет совершить: добавить контакт или найти человека в списке контактов по фамилии. Действие «добавить контакт»: программа запрашивает имя и фамилию контакта, затем номер телефона, добавляет их в словарь и выводит … Читать далее

Функция сортировки

Что нужно сделать Напишите функцию, которая сортирует по возрастанию кортеж, состоящий из целых чисел, и возвращает его отсортированным. Если хотя бы один элемент не является целым числом, то функция возвращает исходный кортеж. Основной код оставьте пустым или закомментированным (используйте его только для тестирования). Пример вызова функции: Что оценивается

По парам

Что нужно сделать Напишите программу, которая инициализирует список из 10 случайных целых чисел, а затем делит эти числа на пары кортежей внутри списка. Выведите результат на экран. Дополнительно: решите задачу несколькими способами. Пример: Что оценивается