Chinaunix首页 | 论坛 | 博客
  • 博客访问: 464044
  • 博文数量: 80
  • 博客积分: 2393
  • 博客等级: 大尉
  • 技术积分: 1434
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 21:46
个人简介

己所不欲勿施于人!

文章分类

全部博文(80)

文章存档

2017年(1)

2016年(9)

2014年(1)

2013年(17)

2012年(5)

2011年(13)

2010年(9)

2009年(8)

2008年(17)

分类: Python/Ruby

2013-04-29 15:06:19

标准类型:
数字(分为几个子类型,其中三个是整型)
整型
布尔型
长整型
浮点型
复数型
字符串“” ‘’
列表[]
元组()
字典{}

有三种模型可帮助我们对Python的基本数据类型进行分类,每种模型都展示给我们这些类型之间的相互关系
  • 存储模型
  • 更新模型
  • 访问模型
存储模型
Python的类型,像大多数语言一样,能容纳一个或多个值。
一个能保存单个字面对象的类型,我们称之为原子或标量存储。
可以容纳多个对象的类型,我们称之为容器存储。

字符串看上去像一个容器,因为它“包含”字符(并且经常多于一个字符),不过由于Python并没有字符类型,所以字符是一个自我包含的文字类型。

存储类型
分类 Python 类型
标量/原子类型 数值(所有数值类型),字符串(全部文字)    
容器类型 列表,元组,字典 

新类

从名称中我们也许可以猜到,我们就是按照对象创建成功之后是否可以更新来进行分类。

更新类型
分类 Python 类型
可变类型 列表,字典
不可变类型 数字,字符串,元组

看过这个表之后,也许你会有些疑问
难道数值和字符串是不可变的嘛??

我们通过例子来分析一下
你还记得这个内建函数id(),是用来确认对象身份的。

点击(此处)折叠或打开

  1. >>> x ='this is a text'
  2. >>> id(x)
  3. 12149168
  4. >>> x='python is well'
  5. >>> id(x)
  6. 12285656
  7. >>> i =0
  8. >>> id(i)
  9. 10415972
  10. >>> i=i +1
  11. >>> id(i)
  12. 10415960
  13. >>>
事实上的效果是,新对象被创建,取代了旧对象。
新创建的对象被关联到原来的变量名,旧对象被丢弃。
对于可变对象的列表,又是什么情况呢?

点击(此处)折叠或打开

  1. >>> alist=['test',1,2]
  2. >>> alist[2]
  3. 2
  4. >>> id(alist)
  5. 12269608
  6. >>> alist[2]=100
  7. >>> alist[1]=alist[2]+1
  8. >>> alist
  9. ['test', 101, 100]
  10. >>> id(alist)
  11. 12269608
  12. >>>
我们看到,对列表项任意的修改,列表的ID始终没有改变。

访问类型

尽管前面两种类型分类方式在介绍Python时都很有用,塔门还不是区分数据类型的首要模型。
对这种目的,我们使用访问模型。也就是说根据访问我们存储的数据的方式对数据类型进行分类。
在访问模型中共有三种访问方式:直接存取、顺序、映射

1.非容器类型可以直接访问。所有的数值类型都归到这一类。
2.序列类型是指容器内的元素按从0开始的索引顺序访问。字符串、列表、元组都归到这一类。
  Python 不支持字符类型,因此,虽然字符串是简单文字类型,因为它有能力按照顺序访问字符串,所以也将它归到序列类型。
3.映射类型类似序列的索引属性。他的元素无序存放,通过一个唯一的key来访问。字典自然属于这一类型。

访问类型
分类 Python 类型
直接访问 数字
顺序访问 字符串、列表、元组
映射访问 字典




阅读(1011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~