做题的时候因为初始化成[[0]*n]*n卡了好久,后来才知道这两种方法初始化出来的数组不一样。
用第一种方式初始化,其实是将【0】*n这个列表的索引复制了n遍,改变其中一个,其它的也会跟着改变。而第二种是通过for i in range(n)推导出的真实二维列表。
总结:
推荐使用全部用循环或者组合的方式(里面是×,外面循环)的方式。如果都为乘的方式是浅复制,每一行的改变都会改变其他行。
做题的时候因为初始化成[[0]*n]*n卡了好久,后来才知道这两种方法初始化出来的数组不一样。
用第一种方式初始化,其实是将【0】*n这个列表的索引复制了n遍,改变其中一个,其它的也会跟着改变。而第二种是通过for i in range(n)推导出的真实二维列表。
总结:
推荐使用全部用循环或者组合的方式(里面是×,外面循环)的方式。如果都为乘的方式是浅复制,每一行的改变都会改变其他行。