第四章、介绍Python对象类型

为什么使用内置类型

内置对象使程序更容易编写。

内置对象是扩展的组件。

内置对象往往比定制的数据结构更有效率。

内置对象是语言的标准的一部分。

Python的核心数据类型:

数字、字符串、列表、字典、元祖、文件、集合、其他类型、编程单元类型、与实现相关的类型。

数字

Python的核心对象集合包括常规的类型:整数(没有小数部分的数字)、浮点数(概括地讲,就是后边有小数部分的数字)以及更为少见的类型(有虚部的复数、固定精度的十进制数、带分子和分母的有理分数以及集合等)。

math模块包括更高级的数学工具,如函数,而random模块可以作为随机数字的生成器和随机选择器。

字符串

就像任意字符的集合一样,字符串是用来记录文本信息的。

1、序列的操作:

①、作为序列,字符串支持假设其中各个元素包含位置顺序的操作。

②、在Python中,索引是按照从最前面的偏移量进行编码的,也就是从0开始,第一项索引为0,第二项索引为1,依此类推。

③、在Python中,我们能够反向索引,从最后一个开始(正向索引是从左边开始计算,反向索引是从右边开始计算)。

④、除了简单地从位置进行索引,序列也支持一种所谓分片(slice)的操作,这是一种一步就能够提取整个分片(slice)的方法。

⑤、作为一个序列,字符串也支持使用加号进行合并(将两个字符串合成为一个新的字符串),或者重复(通过再重复一次创建一个新的字符串)。

2、不可变性:

字符串在Python中具有不可变性——在创建后不能就地改变。

在Python中的每一个对象都可以分为不可变性或者可变性。在核心类型中,数字、字符串和元组是不可变的;列表和字典不是这样(它们可以完全自由的改变)。

3、类型特定的方法:

①、字符串的find方法是一个基本的子字符串查找的操作(它将返回一个传入子字符串的偏移量,或者没有找到的情况下返回-1),而字符串的replace方法将会对全局进行搜索和替换。

②、其他的方法还能够实现通过分隔符将字符串拆分为子字符串(作为一种解析的简单形式),大小写变换,测试字符串的内容(数字、字母或其他),去掉字符串后的空格字符。

③、字符串还支持一个叫作格式化的高级替换操作,可以以一个表达式的形式(最初的)和一个字符串方法调用(Python2.6和Python3.0中新引入的)形式使用。

4、需求帮助:

①、dir函数简单的给出了方法的名称。

②、要查询它们是做什么的,你可以将其传递给help函数。

5、编写字符串的其他方法:

①、反斜线转义序列表示特殊的字符。

②、Python允许字符串包括在单引号或双引号中(它们代表这相同的东西)。

③、Python也支持原始(raw)字符串常量,即去掉反斜线转义机制(这样的字符串常量是以字母“r”开头的)。

6、匹配模式:

字符串对象的方法能够支持基于模式的文本处理。

列表

列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。

1、序列操作:

由于列表是序列的一种,列表支持所有的我们对字符串所讨论过的序列操作。

2、类型特定的操作:

列表没有固定类型的约束。

①、列表的append方法扩充了列表的大小并在列表的尾部拆入一项;pop方法(或者等效的del语句)移除给定偏移量的一项,从而让列表减小。

②、其他的列表方法可以在任意位置插入(insert)元素,按照值移除(remove)元素等。

③、列表sort方法,默认按照升序对列表进行排序,而reverse对列表进行翻转。

3、边界检查:

尽管列表没有固定的大小,Python仍不允许引用不存在的元素。

4、嵌套:

Python核心数据类型的一个优秀的特性就是它们支持任意的嵌套。

5、列表解析:

处理序列的操作和列表的方法中,Python还包括了一个更高级的操作,称作列表解析表达式(list comprehension expression),从而提供了一种处理像矩阵这种结构的强大工具。

列表解析源自集合的概念。

字典

Python中的字典是完全不同的东西:它们不是序列,而是一种映射(mapping)。映射是一个其他对象的集合,但是它们是通过键而不是相对位置来存储的。

1、映射操作:

①、作为常量编写时,字典编写在大括号中,并包含一系列的“键:值”对。

②、我们可以通过键对这个字典进行索引来读取或改变键所关联的值。

③、不同的创建字典的方法:开始一个空的字典,然后每次以一个键来填写它。与列表中禁止边界外的赋值不同,对一个新的字典的键赋值会创建该键。

2、重访嵌套:

3、键的排序:for循环:

①、当我们确实需要强调某种顺序的时候,一个常用的解决办法就是通过字典的keys方法收集一个键的列表,使用列表的sort方法进行排序,然后使用Python的for循环逐个进行显示结果。

②、在最近版本的Python中,通过使用最新的sorted内置函数可以一步完成。

4、迭代和优化:

5、不存在的键:if测试:

元组

元组对象(tuple,发音为“toople”或“tuhple”)基本上就像一个不可改变的列表。

1、为什么要用元组:

元组在实际中往往并不像列表这样常用,但是它的关键是不可变性。

如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。

文件

文件对象是Python代码对电脑上外部文件的主要接口。

要创建一个文件对象,需调用内置的open函数以字符串的形式传递给它一个外部的文件名以及一个处理模式的字符串。

1、其他文件类的工具:

open函数能够实现在Python中编写的绝大多数文件处理。尽管这样,对于更高级的任务,Pyton还有额外的类文件工具:管道、先进先出队列(FIFO)、套接字、通过键访问文件、对象持久、基于描述符的文件、关系数据库和面向对象数据库接口等。

其他核心类型

集合是唯一的不可变对象的无序集合。

十进制数(固定精度浮点数)和分数(有一个分子和一个分母的有理数)。

布尔值(预定义的True和False对象实际上是定制后以逻辑结果显示的整数1和0)。

特殊的占位符对象None(它通常用来初始化名字和对象)。

1、如何破话代码的灵活性:

内置函数type返回的类型对象是赋给该类型的另一个对象的一个对象。

用户定义的类

用抽象的术语来说,类定义了新的对象类型,扩展了核心类型。

剩余的内容

只有我们目前所见到的那些对象类型才被认为是Python核心类型集合的一部分。其他Python中的类型有的是与程序执行相关的对象(如函数、模块、类和编译过的代码);有的是由导入的模块函数实现的,而不是语言语法。

本章小结

本章介绍了Python核心对象类型,以及可以对它们进行的一些操作。我们学习了一些能够用于许多对象类型的一般操作(例如,索引和分片这样的序列操作),以及可以作为方法调用的特定类型操作(例如,字符串分隔和列表增加)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容