Создайте два валидатора. Первая функция-валидатор (is_shifted
) должна принимать два списка чисел одинаковой длины и проверять, образован ли второй список путем смещения каждого элемента первого списка на число-константу.
Вторая функция-валидатор (is_multiplied
) должна работать аналогично, только проверять, образован ли второй список путем умножения каждого элемента первого списка на константу.
Примеры
is_shifted([1, 2, 3], [2, 3, 4]) ➞ True # Каждый элемент смещен на +1 is_shifted([1, 2, 3], [-9, -8, -7]) ➞ True # Каждый элемент смещен на -10 is_multiplied([1, 2, 3], [10, 20, 30]) ➞ True # Каждый элемент умножен на 10 is_multiplied([1, 2, 3], [-0.5, -1, -1.5]) ➞ True # Каждый элемент умножен на -1/2 is_multiplied([1, 2, 3], [0, 0, 0]) ➞ True # Каждый элемент умножен на 0
Варианты решения
def is_shifted(lst1, lst2): return lst2 == [i + (lst2[0]-lst1[0]) for i in lst1] def is_multiplied(lst1, lst2): return lst2 == [i * (lst2[0]/lst1[0]) for i in lst1]
def is_shifted(lst1, lst2): return len(set([lst2[i]-lst1[i] for i in range(len(lst1))]))==1 def is_multiplied(lst1, lst2): return len(set([lst2[i]/lst1[i] for i in range(len(lst1))]))==1