Почему значения в элементах массива изменились? - PullRequest
1 голос
/ 28 февраля 2020

список значений моего кода от [0] [0] до [0] [3] изменился, но я не уверен, почему ...

Код:

inputBin = list(input("Enter a binary number (max. 8 bits): "))
a = [[0] * 4] * 2


for j in range(2):
    for i in range(4):
        a[j][i] = int(inputBin[(2 * j) ** 2 + i])
        print("a[", j,"][",i,"] = ", a[j][i])

for j in range(2):
    for i in range(4):
        print("a[",j,"][",i,"] = ",a[j][i])

Выход

Enter a binary number (max. 8 bits): 11000011
a[ 0 ][ 0 ] =  1
a[ 0 ][ 1 ] =  1
a[ 0 ][ 2 ] =  0
a[ 0 ][ 3 ] =  0
a[ 1 ][ 0 ] =  0
a[ 1 ][ 1 ] =  0
a[ 1 ][ 2 ] =  1
a[ 1 ][ 3 ] =  1
a[ 0 ][ 0 ] =  0
a[ 0 ][ 1 ] =  0
a[ 0 ][ 2 ] =  1
a[ 0 ][ 3 ] =  1
a[ 1 ][ 0 ] =  0
a[ 1 ][ 1 ] =  0
a[ 1 ][ 2 ] =  1
a[ 1 ][ 3 ] =  1

Обратите внимание, что значения от [0] [0] до [0] [3] внизу отличаются от top.

Выходное изображение

1 Ответ

1 голос
/ 28 февраля 2020

следующая строка a = [[0] * 4] * 2 создаст 1 внутренний список с 2 ссылками, вы можете использовать:

a = [[0] * 4 for _ in range(2)] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...