Показанная Python-функция уже решает задачу: *values собирает позиционные аргументы в кортеж, а list comprehension создаёт новый список удвоенных значений.
Функция удвоения произвольного набора чисел
Показанная Python-функция уже решает задачу: *values собирает позиционные аргументы в кортеж, а list comprehension создаёт новый список удвоенных значений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создайте функцию, способную принимать любое количество аргументов‑чисел и возвращать массив, где каждый элемент умножен на два. При этом количество входных значений не ограничено.
def double_all(*values):
return [v * 2 for v in values]
Ответ
Показанная Python-функция уже решает задачу: *values собирает позиционные аргументы в кортеж, а list comprehension создаёт новый список удвоенных значений.
def double_all(*values):
return [value * 2 for value in values]
double_all(1, 3, -2) # [2, 6, -4]
double_all() # []
Количество аргументов не фиксировано сигнатурой, но практически ограничено памятью. Предполагаются числа: строка при умножении на 2 повторится, а не станет числовым удвоением. Время O(n), память результата O(n), если не учитывать стоимость арифметики над большими числами.