Python:python中的可变类型和不可变类型
python 定义数组Python的基本数据类型⼤致可分为6类:
1.Number(数字)(bool布尔类型、int整型、float浮点型、complex复数等都归为Number数字类型)
2. String(字符串)
3. Tuple (元组)
4. List(列表)
5. Dictionary (字典)
6. Sets(集合)
这6种类型⼜可以分为可变类型和不可变类型,其中不可变类型有:Number(数字)  String(字符串) Tuple (元组)。可变类型有: List(列表) Dictionary (字典) Sets(集合)。
不可变数据类型:不可变数据类型的变量在第⼀次赋值声明(由于是解释型语⾔,python中声明和定义是分不开的,即出现给变量赋值就会分配其相应的内存空间。)的时候, 会在内存中开辟⼀块空间, ⽤来存放这
个变量被赋的值, 存放这个值的内存空间就是内存中的⼀个地址, ⽽这个变量实际上存储的, 并不是被赋予的这个值, ⽽是存放这个值所在空间的内存地址, 通过这个地址, 变量就可以在内存中取出数据了。
所谓不可变就是说, 我们不能改变这个数据在内存中的值, 所以当我们改变这个变量的赋值时, 只是在内存中重新开辟了⼀块空间, 将这⼀条新的数据存放在这⼀个新的内存地址⾥, ⽽原来的那个变量就不在引⽤原数据的内存地址⽽转为引⽤新数据的内存地址了。
不可变类型举例:
也就是说a=5的时候,⾸先开辟了⼀个内存把3放进去,a只是相当于这个内存中的引⽤⽽已,⽽即使a=5之后,我们依然可以发现放3的内存仍然在。当然,重新运⾏程序的话,id(3)不⼀定会是同样的值。(这是由于重新运⾏分配地址的原因)
可变数据类型举例:当你第⼀次赋值声明了⼀个可变数据类型的时候, 同样会在内存中开辟⼀个空间, 并且将你所赋的数据值放在这块内存中, 然后将这个变量指向数据所在的内存所在位置, 不同的是, 可变数
据类型可以对内存中的数据进⾏修改, 并且不会导致变量引⽤地址的变化, 但是这种修改仅限于Python中的内置⽅法, ⽐如list.append(), ve(), dict.pop(), dict.clear()等, 如果要是进⾏重新赋值的操作的话, ⼀样会改变变量的地址指向(即使你使⽤同样的值,⽐如数组[1,2,3])。⽽且当变量重新指向了新的内存之后,之前的内存也就被⾃动回收了。
列表中的+=并不是先相加再赋值,⽽是相当于extend⽅法(把另外⼀个列表的内容的整合到当前列表中)。
hash:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。