Напишите функцию, которая будет определять, является ли переданная ей последовательность линейной («Linear»), квадратичной («Quadratic») или кубической («Cubic»).
Инпутом будет список чисел произвольной длины. Числа в списке будут представлять собой одну из указанных последовательностей.
Функция должна возвращать строки «Linear», «Quadratic» или «Cubic» в соответствии с тем, какая последовательность передана.
seq_level(1, 2, 3, 4, 5) ➞ "Linear" seq_level(3, 6, 10, 15, 21) ➞ "Quadratic" seq_level(4, 14, 40, 88, 164) ➞ "Cubic"
def seq_level(lst):
seq = lambda x: [b - a for a, b in zip(x, x[1:])]
is_linear = lambda x: len(set(seq(x))) == 1
return 'Linear' if is_linear(lst) \
else 'Quadratic' if is_linear(seq(lst)) \
else 'Cubic' def seq_level(lst):
d, level = {1: 'Linear', 2: 'Quadratic', 3: 'Cubic'}, 0
while len(set(lst)) != 1:
lst = [a - b for a, b in zip(lst, lst[1:])]
level += 1
return d[level] def seq_level(lst):
dif1 = [j - i for i, j in zip(lst, lst[1:])]
dif2 = [j - i for i, j in zip(dif1, dif1[1:])]
dif3 = [j - i for i, j in zip(dif2, dif2[1:])]
if not sum(dif2): return 'Linear'
if not sum(dif3): return 'Quadratic'
return 'Cubic' Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…