Eсть ли более питоновский способ вывести квадрат из нулей с единицами по диагоналям?

size = int(input())
row = [0 for i in range(size)]
for i in range(len(row)):
    row[i], row[-i-1] = 1, 1
    row_t = ' '.join(str(k) for k in row)
    print(row_t)
    row[i], row[-i-1] = 0, 0

Ответы (1 шт):

Автор решения: strawdog

Так, например:

import numpy as np

size = 10
matrix = np.zeros((size, size), int)
np.fill_diagonal(matrix, 1)
np.fill_diagonal(np.fliplr(matrix), 1)
print(matrix)

Вывод:

[[1 0 0 0 0 0 0 0 0 1]
 [0 1 0 0 0 0 0 0 1 0]
 [0 0 1 0 0 0 0 1 0 0]
 [0 0 0 1 0 0 1 0 0 0]
 [0 0 0 0 1 1 0 0 0 0]
 [0 0 0 0 1 1 0 0 0 0]
 [0 0 0 1 0 0 1 0 0 0]
 [0 0 1 0 0 0 0 1 0 0]
 [0 1 0 0 0 0 0 0 1 0]
 [1 0 0 0 0 0 0 0 0 1]]
→ Ссылка