在Python中,赋值语句"="和切片赋值语句"= b[:]"之间有以下区别:
a = b 这种赋值语句将变量a指向了变量b所引用的对象。换句话说,a和b指向同一个对象,当对其中一个变量进行修改时,另一个变量也会被修改。
示例代码:
b = [1, 2, 3]
a = b
a.append(4)
print(b) # 输出:[1, 2, 3, 4]
a = b[:] 这种切片赋值语句会创建一个新的对象,并将b的值复制到新的对象中,然后将a指向新的对象。换句话说,a和b指向不同的对象,彼此之间的修改不会互相影响。
示例代码:
b = [1, 2, 3]
a = b[:]
a.append(4)
print(b) # 输出:[1, 2, 3]
print(a) # 输出:[1, 2, 3, 4]
总结: 赋值语句"="将a和b指向同一个对象,而切片赋值语句"= b[:]"会创建一个新的对象,并将b的值复制到新的对象中,然后将a指向新的对象。