Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Python的数据类型总结

原地可变类型和不可变类型

原地不可变类型又叫可哈希(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
下面关于Python的文章您也可能喜欢,不妨看看:Python:在指定目录下查找满足条件的文件  http://www.linuxidc.com/Linux/2015-08/121283.htmPython2.7.7源码分析  http://www.linuxidc.com/Linux/2015-08/121168.htm无需操作系统直接运行 Python 代码  http://www.linuxidc.com/Linux/2015-05/117357.htmCentOS上源码安装Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htm《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htmPython脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm在Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htmPython 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htmPython 的详细介绍:请点这里
Python 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/121918.htm