array = [[1, 2, 3, 4, 5], [4, 5, 6, 7, 8], [4, 5, 6, 7, 8], [4, 5, 6, 7, 8], [7, 8, 9, 8, 7]] n = len(array) # 右下→左上 rl_d = [[array[max(0, -d) + i][max(0, d) + i] for i in range(n - abs(d))] for d in range(1-n, n)] print(rl_d) >> [[7], [4, 8], [4, 5, 9], [4, 5, 6, 8], [1, 5, 6, 7, 7], [2, 6, 7, 8], [3, 7, 8], [4, 8], [5]] # 左下→右上 lr_d = [[array[max(0, d) + i][min(n + d, n) - i - 1] for i in range(