Python Почему таблица [0] [:] == таблица [:] [0] - PullRequest
0 голосов
/ 01 марта 2020

Почему tab2D[:][0] и tab2D[0][:] дают такой же результат?

if __name__ == "__main__":
    table2D = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]

    print(table2D[:][0]) #[1,2,3]
    print(table2D[0][:]) #[1,2,3]

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

На самом деле, это не точно одно и то же.
Они выглядят как имеющие одинаковые значения.
Но они имеют разные ссылки.

table2D = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

a = table2D[0][:]
b = table2D[:][0]

a[0] = 0
print(table2D[0])  # [1, 2, 3]
b[0] = 0
print(table2D[0])  # [0, 2, 3]
0 голосов
/ 01 марта 2020

Они оба имеют одинаковые значения , но это два разных списка.

table2D[:] создает копию table2D, а [0] получает первый индекс этой копии поэтому

table2D[:][0]

- это индекс 0 в копии table2D.

table2D[0] принимает первый индекс table2D, а [:] создает копию этого списка, поэтому

table2D[0][:]

является копией индекса 0 в table2D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...