Python的数据类型概括
发布时间:2021-12-10 19:59:08 所属栏目:PHP教程 来源:互联网
导读:原地可变类型和不可变类型 原地不可变类型又叫可哈希(hashable)类型,原地可变类型又叫不可哈希类型。 原地不可变类型: 数字类型:int, float, decimal.Decimal, fractions.Fraction, complex 字符串类型:str, bytes tuple frozenset 布尔类型:True, False
原地可变类型和不可变类型 原地不可变类型又叫可哈希(hashable)类型,原地可变类型又叫不可哈希类型。 原地不可变类型: 数字类型:int, float, decimal.Decimal, fractions.Fraction, complex 字符串类型:str, bytes tuple frozenset 布尔类型:True, False None 原地可变类型: list dict set 如何实际检验是否原地可变 hash还是会返回原地不可变类型的hash值,如果对一个原地可变的类型调用次函数,那么会返回TypeError。 只有可以hash的类型才可以作为dict的键。 只有可以hash的类型才可以放入set中,所以set本身不可以嵌套存放在set中。 举例说明: >>> hash(b'aaa') 6904179387427091653 >>> hash(bytearray(b'aaa')) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'bytearray' >>> hash(frozenset({1,2,3})) -7699079583225461316 >>> hash({1,2,3}) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'set' 如何实际检验操作是否是原地变化。 内置函数id()会返回一个对象在内存中实际的存放地址。 >>> L=[1] >>> id(L) 49689480 >>> L.append(2) >>> id(L) 49689480 #在原地修改,所以可以看到存放地址没有发生改变。 >>> s='aa' >>> id(s) 47072456 >>> s+='bb' >>> id(s) 49700008 #由于不可以在原地修改,所以当字符串变动后,新开辟了一个内存地址进行存放。 >>> 数据保存是否有序 有序的数据类型 有序的数据类型称为序列,支持索引、分片、加法、乘法、计算长度、比较大小操作。 比较时会依次比较每个元素的大小,如果依次比较时发现类型不相同会跳出错误。 list tuple str bytes 无序的数据类型 dict set ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |