Положительные и отрицательные числа

Напишите функцию, которая будет принимать список чисел и проверять, чередуются ли в нем положительные и отрицательные числа.

Примеры

alternate_pos_neg([3, -2, 5, -5, 2, -8]) ➞ True

alternate_pos_neg([-6, 1, -1, 4, -3]) ➞ True

alternate_pos_neg([4, 4, -2, 3, -6, 10]) ➞ False

Примечания

  • Списки могут быть любой длины.
  • Список может начинаться с любого числа, хоть положительного, хоть отрицательного (проверяем чередование).
  • Если в списке содержится 0, возвращаем False.

Варианты решений

def alternate_pos_neg(lst):
    if 0 in lst:
        return False
    return all(a*b < 0 for a, b in zip(lst, lst[1:]))
def alternate_pos_neg(lst):
    if 0 in lst:
        return False
    return all(lst[i]*lst[i+1]<0 for i in range(len(lst)-1))