Валидаторы смещения и умножения

Создайте два валидатора. Первая функция-валидатор (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