python生成从小到大的蛇形S形走位数组

如图,怎么使用python生成如下图的excel数组,输入行和列,生成对应的数组

img


上面是简单的,最终是要生成下图这样的蛇形数组

img


rows = int(input("请输入数组的行数:"))
cols = int(input("请输入数组的列数:"))

# 初始化数组
arr = [[0] * cols for i in range(rows)]

# 计算蛇形走位的总步数
steps = rows * cols

# 开始蛇形走位
num = 1
for i in range(rows):
    if i % 2 == 0:
        for j in range(cols):
            arr[i][j] = num
            num += 1
    else:
        for j in range(cols-1, -1, -1):
            arr[i][j] = num
            num += 1

# 打印数组
for i in range(rows):
    for j in range(cols):
        print("%2d" % arr[i][j], end=' ')
    print()

img

img


想要的顺序是从上到下,上面脚本得到的是从左到右,还能帮忙调整一下吗