python中的可变数据类型与不可变数据类型

一、定义:

以下解释是相对于内存地址来说的:

       不可变数据类型: 数据类型对应变量的值发生了改变,对应的内存地址发生改变

  可变数据类型    :数据类型对应变量的值发生了改变,对应的内存地址不发生改变

所以说,可不可变是针对内存里存放的内容是否可变而言的。

    总结:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变

二、数据类型的分类

数据类型可变/不可变
整型不可变
字符串不可变
元组不可变
列表可变
集合可变
字典可变

            python中数据类型有:整型,字符串,元组,集合,列表,字典。、

在使用过程中就是,针对可变数据类型,就可以直接进行赋值。

数据类型的分析:

1、整型

>>> a=3
>>> id(a)
13503544
>>> a=4
>>> id(a)
13503520

数据发生改变,变量的内存地址发生了改变,那么整型就是不可变数据类型

2、字符串

>>> i='hello'
>>> id(i)
140310959433264
>>> i='yyz'
>>> id(i)
15512680

当数据发生改变后,变量的内存地址发生了改变,那么字符串就是不可变数据类型

3、元组

>>> a=(1,3,[2,5])
>>> id(a)
140310959360912
>>> a[2].append(6)
>>> print(a)
(1, 3, [2, 5, 6])
>>> id(a)
140310959360912

从元组的定义就可以得出,元组不可变。

验证的话,可以在元组中放列表。

修改列表的值,列表是可变数据类型,所以列表的地址没有改变,列表在元组里,所以元组也没有改变,那么就可以得出,元组是不可变数据类型。

4、集合

>>> j={1,2,3}
>>> id(j)
140310959623424
>>> j.add(7)
>>> id(j)
140310959623424

集合我们常用来进行去重和关系运算,集合是无序的。

可以看出,虽然集合数据发生改变,但是内存地址没有发生了改变,那么集合就是可变数据类型

5、列表

>>> y=[1,2,3]
>>> id(y)
15436472
>>> y.append(34)
>>> id(y)
15436472

虽然列表数据发生改变,但是内存地址没有发生了改变,那么列表就是可变数据类型

6、字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的。但是在3.6版本后,字典开始是有序的,这是新的版本特征。

字典的key值可以是整型,字符串,元组,但是不可以是列表,集合,字典。

>>> a={'1':4,'2':5}
>>> id(a)
14397488
>>> a.clear()
>>> id(a)
14397488

可以看出,字典数据改变,内存地址没有变化,那么字典就是可变数据类型。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值