Как сделать матрицу указанного размера из точек через пробел используя один цикл?

Нужно создать матрицу n на n, к примеру, n = 3. При этом матрица должна быть заполнена точками через пробел. Сама задача: создать матрицу какую я описал выше, при этом используя только один цикл. Использование библиотек или методов, которые напрямую выполняют задачу (если такие есть), не приветствуется.

Пример правильного вывода при n = 3: . . .(enter). . .(enter). . . Важное уточнение: в конце строк не должно быть пробелов, тоесть такие варианты являются не правильными: matrix = ['. ' * n for i in range(n)].

Тоесть нужно именно техническое решение.


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

Автор решения: Imas
def create_matrix(n):
    matrix = []
    row = []
    for i in range(n * n):
        row.append('.')
        if (i + 1) % n == 0:
            matrix.append(' '.join(row))
            row = []
    return matrix

n = 3
result = create_matrix(n)
for line in result:
    print(line)
→ Ссылка
Автор решения: strawdog
n = 5
_ = [print("."+" "*bool((x+1)%n)+ "\n"*(not(x+1)%n), end="") for x in range(n*n)]
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
→ Ссылка