Проблема в изменении двумерного массива

Dandarez

Новичок
Пользователь
Май 20, 2020
4
0
1
print("Введите длину ребра квадрата:")
n=int(input())
if n%2==0: #Нечётное ребро
n=n+1
A=[[0]*n]*n #заполнение нулями
A[5][5]=1
for i in range (len(A)): #вывод в виде таблицы
for j in range (len(A)):
print(A[j], end=" ")
print(" ")


Введите длину ребра квадрата:
11
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0


изменяется весь столбец а не строка
 

Dandarez

Новичок
Пользователь
Май 20, 2020
4
0
1
1589954250891.png
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Оформляйте вопросы правильно, вот правила.
У вас в коде неправильно создается двумерный массив, поэтому изменяется сразу целый столбец.
Вот рабочий пример:
Python:
print("Введите длину ребра квадрата:")
n = int(input())
if n % 2 == 0:  # Нечётное ребро
    n = n + 1
A = [[0 for i in range(n)] for i in range(n)]
A[5][5] = 1
for i in A:
    print(i)
 

Форум IT Специалистов