python的常见基本数据类型
- Number(数字)
- String(字符串)
- bool(布尔类型)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典
不可变数据类型(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。
python 一切皆是对象
类型指的也是对象的类型
不可变数据类型是该类型对象的值不可更改
可变数据类型是该类型对象的值可以更改
不可变数据类型/不可变对象
number类型说明
a = 1 创建了一个整型对象1,变量a指向了该整型对象1;
再次赋值a = 1操作并没有创建新的对象,变量a指向了该整型对象1;
b = 1 并没有重新创建对象,只是创建了变量b,并且变量b和变量a指向了同一个对象,对象1多了一个引用
a = 1 创建了一个整型对象1,变量a指向了该整型对象1;
a = 2 重新创建了一个整型对象2,变量a指向了整型对象2;
整型对象1的值并没有更改,只是该对象的引用减1;不可变可以理解为地址处140544588167304的值再被垃圾回收之前一直都会是1
字符串类型说明字符串类型说明
s
字符串和列表一样可以通过[]获取序列的值、切片、遍历,但是不能修改字符串的值
字符串拼接并没有修改原来的字符串对象的值,而是新创建了一个对象
可变数据类型/可变对象
每一次赋值都会创建一个新的list对象,即使list对象的值是一样的,list_a变量指向的对象从4465045448变成了4465045448
list1 = [1,2] 创建了一个list对象,变量list1指向了该列表对象,值为[1,2]
通过append修改列表对象的值为[1,2,3],变量list1的指向的地址没有变;没有创建新的对象,原来的对象的值被修改了
通过list1[0]修改索引为0的值,修改完之后是[0,1,2],变量list1的指向的地址没有变;没有创建新的对象,原来的对象的值被修改了