python list *乘法
列表、集合、字典等可变序列而言
列表中包含的是元素值的引用,而不是直接包含元素。
如果通过下标修改序列中元素的值或通过可变序列对象提供的方法来增加和删除元素,序列对象在内存中的地址不变,仅仅是被改变元素的地址发生变化
#使用乘法来扩展列表对象,将列表与整数相乘,生成一个新的列表
alist=[1,2,3]
blist=alist*2
print(id(alist)) #8734200
print(id(blist)) #8735360
alist[0]=4
print(alist) #[4, 2, 3]
print(blist) #[[1, 2, 3, 1, 2, 3]
#双层列表需要注意。
#当使用*运算符将包含列表的列表进行重复并创建新列表时,并不是创建元素的复制,而是创建已有对象的引用
x=[[None]2]
x1=x3
print(x)
print(x1)
x[0][0]=1
print(x) #[[1, None]]
print(x1) #[[1, None], [1, None], [1, None]]