建议这几篇文章都看看
Python中type和object的关系
Python中一切皆对象
Python list的乘法复制
Python list+=和list=list+的区别
ls里面有一个子元素[],[子元素_0]*10不是子元素_0复制10次,而是后面的每个元素都指向子元素_0,即子元素_10作为一个引用被复制了10次。浅拷贝而已,如果改变了一个,其余的都会改变
ls的元素*10实际上为里面的元素的引用复制了10次Python中对对象的传参和赋值都是引用的传递和赋值
除非引用copy库中的强制复制
还可以简写成
[[] for i in range(10)] # 一个列表生成式
L = L * 10和*L = 10是不同的:
就像加法运算一样,后者并没有改变原来的引用情况。
函数f是和默认参数l是绑定在一起的,因为l是可变对象,所以可以在l的基础上进行更改,
详解该问题
网友评论