python列表和字符串的可变性

python中列表和字符串的使用有大多数方法是类似和通用的,可以和C里的数组类比。今天来看看列表和字符串的区别。
举个例子,
(1)a = ‘I love u’ ; b = a ; a = ‘I don’t love u anymore’ b=?
(2)c = [‘A’,‘B’,‘C’,‘D’] ; d = c ; c[0] = ‘B’; d=?
我们来验证一下:
python列表和字符串的可变性
python列表和字符串的可变性
可以看出
1)中字符串a 'I love u’在进行赋值给b后,a被修改,但是b却没有发生变化 b还是原来那个 b=‘I love u’ 这里可以理解为‘=’S是一个假等号
(2)中列表c被修改后,原先被赋值的d也跟着发生了变化,d=[‘B’,‘B’,‘C’,‘D’] 此时的等号可以理解为一个真等号, 要注意这点差别
不过这仅限于c=[‘A’,‘B’,‘C’,‘D’]; c[0]=‘B’;这样对单个字符进行赋值修改的操作,但是如果是这样:
c=[‘A’,‘B’,‘C’,‘D’];d=c; c=[‘B’,‘B’,‘C’,‘D’]; d=[‘A’,‘B’,‘C’,‘D’]成立,因为这样相当于是重新定义了c ,d=c是之前的,所以d不会发生变化 除非再次进行赋值操作
如图:
python列表和字符串的可变性