How to print all diagonals (top-right - bottom-left) in Python

1 Answer

0 votes
def print_diagonals(list2d):
    rows = len(list2d) 
    cols = len(list2d[0])
    
    # From first row
    for start_col in range(cols):
        r, c = 0, start_col
        diag = []
        while r < rows and c >= 0:
            diag.append(list2d[r][c])
            r += 1
            c -= 1
        print(diag)
    
    # From the last column
    for start_row in range(1, rows):
        r, c = start_row, cols - 1
        diag = []
        while r < rows and c >= 0:
            diag.append(list2d[r][c])
            r += 1
            c -= 1
        print(diag)


list2d = [[ 1, -1, 77],
	      [-2, 88, -3],
	      [99, -4,  3]]
	
print_diagonals(list2d)



'''
run:

[1]
[-1, -2]
[77, 88, 99]
[-3, -4]
[3]

'''

 



answered Feb 17 by avibootz
...