首页 > 解决方案 > Python 为什么 table[0][:] == table[:][0]

问题描述

为什么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]

标签: pythonlist

解决方案


实际上,它并不完全相同
它们看起来具有相同的值。
但他们有不同的参考。

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]

推荐阅读