先说点概念
在解释可变/不可变序列之前,先要知道什么是序列?序列就一个个元素有序地排列在一起,像小朋友”排排坐,吃果果“一样。
可变序列就是创建一个序列后,可以改变元素,可以比如成排好队小朋友之间位置可以换,可以插队等。可变序列包括列表和字典,集合。
不可变序列就是序列一旦创建后,就不可以修改了,可以比如成排好队地小朋友都十分地”拽“,不让人插队,不给换位置等操作。不可变序列包括元组,数值,字符串。
然后举些例子
例1
a=[1,2,3,4]
a[0] = 0 #对第一个元素进行赋值 a.append(5) #添加一个元素
因为list是可序列,所以对list进行修改是可以的。
但是对于不可变序列的元组是像列表那样操作,门都没有~
例2
a=(1,2,3)
a[0]=1 #TypeError: 'tuple' object does not support item assignment
再看这个赋值代码
例3
a=1
a=2
你会不会觉得 a本来是1,是个数值,现在改成2了,这个序列不是改了吗?!!
非也非也~~,要知道变量不是盒子,更像一个”便签“(《流畅的Python》中有详细的描写,链接见文末)。参考下图
便签的特点是什么?能贴能撕啊!!