列表的创建与方法

与元组不同,列表是可变的,有append等更改命令。

创建一个规定长度的空列表:

a=[None]*number

如果要通过赋值等方式更改a,结果也很合理,但注意:

a=[[None]]*5
a[0][0]=3
print(a)
[[3], [3], [3], [3], [3]]

你仅仅只是想更改列表中的第一个值,但最终却全部被改变了。原因是,由乘法得到的列表其实都是原本列表实例的引用,因此改变其中一个的值便会更改整个列表中每一个元素的值。而第一段代码却不会有这个问题,因为在一维列表中用乘法扩展开来的每一个引用其实在赋值时并不是被改变值,而是被替换掉了。但二维列表中用乘法扩展开来的每一个引用如果用“a[0]=3”则也可以只改变一个元素,做到和一维列表一样的覆盖,但注意第一个元素会没有中括号,这也说明了我们进行的操作不是对第一个列表改值,而是覆盖掉第一个列表。

a=[[None]]*5
a[0]=3
print(a)
[3, [None], [None], [None], [None]]

猜你喜欢

转载自blog.csdn.net/qq_40703975/article/details/82382061