Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Itertools.repeat for list of lists + list range reverse solution in Clear category for Zigzag Array by Striga
from typing import List
from itertools import repeat
def create_zigzag(rows: int, cols: int, start: int = 1) -> List[List[int]]:
zigzag = [[] for l in repeat(None, rows)]
for i in range(rows):
zigzag[i] = list(range(start, start + cols))
start += cols
if i%2 != 0: zigzag[i] = zigzag[i][::-1]
return zigzag
if __name__ == '__main__':
assert create_zigzag(3, 5) == [
[1,2,3,4,5],
[10,9,8,7,6],
[11,12,13,14,15]
]
assert create_zigzag(5, 1) == [
[1],
[2],
[3],
[4],
[5]
]
assert create_zigzag(3, 3, 5) == [
[5, 6, 7],
[10, 9, 8],
[11, 12, 13]
]
assert create_zigzag(0, 3) == []
assert create_zigzag(3, 0) == [[], [], []]
assert create_zigzag(0, 0) == []
Dec. 11, 2020