Сортировка улиткой

Алгоритм сортировки улиткой. Вернуть элементы массива, расположенные от самых внешних элементов к среднему элементу, по часовой стрелке.
array = [[1,2,3],
[4,5,6],
[7,8,9]]
snail_sort # => [1,2,3,6,9,8,7,4,5]

Сортировка улиткой

def snail(array):
    a = []
    while array:
        a.extend(list(array.pop(0)))
        array = list(zip(*array))
        array.reverse()
    return a

a.extend(list(array.pop(0)))

a = [1, 2, 3]

array = [[4, 5, 6], [7, 8, 9]]

array = list(zip(*array))

array = [(4, 7), (5, 8), (6, 9)]

array.reverse()

array = [(6, 9), (5, 8), (4, 7)]


a.extend(list(array.pop(0)))

a = [1, 2, 3, 6, 9]

array = [(5, 8), (4, 7)]

array = list(zip(*array))

array = [(5, 4), (8, 7)]

array.reverse()

array = [(8, 7), (5, 4)]