python疑难问题---3、可变和不可变数据类型
一、总结
一句话总结:
python中不可变数据类型:比如 数值型、字符串型string和元组tuple
python中可变数据类型:比如 列表list和字典dict
1、python中不可变数据类型(比如数值型)的特点?
1、改变值,变量的地址会改变
2、值相同的两个变量,地址是一样的
a = 3 print(id(a)) #2077451392 a = 5 print(id(a)) #2077451424 b = 5 print(id(b)) #2077451424
2、python中可变数据类型(比如列表list)的特点?
a、改变值,变量的地址不会改变
b、值相同的两个变量,地址是不一样的
list1=[1,2,3,4,5] print(id(list1)) #57361872 list1.append(6) print(list1) print(id(list1)) #57361872 print("---------------------------") list2=[1,2,3,4,5] print(id(list2)) #59656792 list2.append(6) print(list2) print(id(list2)) #59656792
二、可变和不可变数据类型
博客对应课程的视频位置:3、可变和不可变数据类型
https://www.fanrenyi.com/video/32/295
1、不可变数据类型
""" 不可变数据类型:数值型、字符串型string和元组tuple 1、改变值,变量的地址会改变 不允许变量的值发生变化,如果改变了变量的值, 相当于是新建了一个对象, 2、值相同的两个变量,地址是一样的 而对于相同的值的对象,在内存中则只有一个对象(一个地址) """ a = 3 print(id(a)) #2077451392 a = 5 print(id(a)) #2077451424 b = 5 print(id(b)) #2077451424
2、可变数据类型
""" 可变数据类型:列表list和字典dict; 1、改变值,变量的地址不会改变 允许变量的值发生变化,即如果对变量进行append、+=等这种操作后, 只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化, 2、值相同的两个变量,地址是不一样的 不过对于相同的值的不同对象,在内存中则会存在不同的对象, 即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份, 这里不存在引用计数,是实实在在的对象。 """ list1=[1,2,3,4,5] print(id(list1)) #57361872 list1.append(6) print(list1) print(id(list1)) #57361872 print("---------------------------") list2=[1,2,3,4,5] print(id(list2)) #59656792 list2.append(6) print(list2) print(id(list2)) #59656792
系列博客对应课程视频地址:
1、遍历列表的三种方式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/293
2、字典排序-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/294
3、可变和不可变数据类型-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/295
4、python文件处理-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/305
5、二维列表初始化-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/306
6、python中浅拷贝和深度拷贝-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/307
7、python中的with...as...-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/320
8、只有一个数的元组表示-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/343
9、Python类中call函数的作用-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/361
10、python遍历字典的几种方式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/368
11、python内嵌for...in循环-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/369
12、python生成器-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/370
13、Python切片操作-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/377
1、遍历列表的三种方式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/293
2、字典排序-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/294
3、可变和不可变数据类型-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/295
4、python文件处理-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/305
5、二维列表初始化-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/306
6、python中浅拷贝和深度拷贝-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/307
7、python中的with...as...-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/320
8、只有一个数的元组表示-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/343
9、Python类中call函数的作用-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/361
10、python遍历字典的几种方式-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/368
11、python内嵌for...in循环-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/369
12、python生成器-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/370
13、Python切片操作-范仁义-读书编程笔记
https://www.fanrenyi.com/video/32/377