数据类型总结:可变不可变
字符串、整数等都是不可变的,而list是可变的,tuple不可变。dict和set都是可变的

”不可变对象,只传递值”对于函数外的不可变对象在内部函数而言,就是只传了比如a的值,不能改变a的指向地址咯?意思就是可以调用值,但是不能运算。如下图:
对于函数外面的对象,无论是可变对象还是不可变对象,在函数里都不要用 同名=同名的变化 这样的做法,会报错!!!也许是范围的问题。。。
对于函数外面的对象,无论是可变对象还是不可变对象,在函数里用 同名赋值,都仅仅是局部变量,跟外面的全局变量没有任何关系!!!
对于可变对象,函数内可以直接改变函数外的全局变量;而不可变对象不可改变,所以第90行报错!!!
对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'
谈谈pop()和remove()2个方法的用法,前者是根据索引删除,后者是根据元素。
所以类似dict和set等无序的用remove()方法删除
tuple:另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。
dict和set都无序
dict:在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。
set:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。

浙公网安备 33010602011771号