您的位置:首页 > 编程语言 > Python开发

《Python核心编程》(第二版) 第6章 序列:字符串、列表和元组(字符串篇)

2017-03-18 21:55 190 查看
第6章 序列:字符串、列表和元组

本章主要讲序列数据类型,对字符串、列表和元组进行了较为详细的讲解,讲解围绕类型简介、操作符、内建函数、类型特性等脉络进行逐个讲述。

6.1 序列

6.1.1 标准类型的操作符

6.1.2 序列类型的操作符

(1)索引seq [ind]:获得下标为ind的元素

(2)切片seq [ind1:ind2:step]:获得下标为ind1至ind2间步长为step的元素集合

(3)重复seq * expr:序列重复expr次

(4)连接seq1 + seq2:连接序列seq1和seq2

(5) obj in seq:判断obj元素是否包含在seq中

(6) obj not in seq:判断obj元素是否不包含在seq中

6.1.3 内建函数(BIF)

1.类型转换

(1)list(iter):把可迭代对象转换为列表

(2)str(obj):把obj对象转换成字符串

(3)unicode(obj):把对象转换成Unicode字符串

(4)basestring():抽象工厂函数,其作用仅仅是为str和unicode函数提供父类,所以不能被实例化,也不能被调用

(6)tuple(iter):把一个可迭代对象转换成一个元组对象

2.可操作

(1)enumerate(iter):接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成由iter每个元素的index值和item值组成的元组

(2)len(seq):返回seq的长度

(3)max():返回最大值

(4)min():返回最小值

(5)reversed(seq):接受一个序列作为参数,返回一个以逆序访问迭代器

(6)sorted():返回一个有序列表

(7)sum(seq, init = 0):返回seq和可选参数init的总和,其效果等同于reduce(operator.add, seq,init)

(8)zip([it0,it1,...itN]):接受一系列可迭代对象作为参数,将对象中各对应元素打包成一个个元组(tuple),然后返回由这些元组组成的的list,若传入参数长度不相等,则返回最短对象一致长度的list

6.2 字符串

(1)字符串的创建和赋值

(2)如何访问字符串的值

(3)如何改变字符串

(4)如何删除字符和字符串

6.3 字符串和操作符

6.3.1 标准类型操作符

(1)比较操作时,字符串按照ASCII值大小进行比较

6.3.2 序列操作符

(1)切片([]和[:]):正向索引、反向索引、默认索引

(2)成员操作符(in,not in):用于判断一个字符或一个子串是否出现在另一个字符串中。

(3)连接符(+):通过连接操作符从原有字符串获得一个新的字符串。join()方法。

(4)编译时字符串连接:

>>>foo = "hello" 'world!'

>>>foo

'helloworld!'

(5)普通字符串转化为Unicode字符串:如果把一个普通字符串和一个Unicode字符串做连接处理,Python会在连接操作前先把普通字符串转化为Unicode字符串。

6.4 只适用于字符串的操作符

6.4.1 格式化操作符(%)

(1)%c:转换成字符

(2)%r:优先用repr()函数进行字符串转换

(3)%s:优先用str()函数进行字符串转换

(4)%d/%i:转换成有符号十进制数

(5)%u:转换成无符号十进制数

(6)%o:转换成无符号八进制数

(7)%x/%X:转换成无符号十六进制数

(8)%e/%E:转成科学计数法

(9)%f/%F:转成浮点型

(10)%g%G:%e和%f%E和%F的简写

(11)%%:输出%

6.4.2 字符串模板:更简单的替代品

6.4.3 原始字符串操作符(r/R)

6.4.4 Unicode字符串操作符(u/U)

6.5 内建函数

6.5.1 标准类型函数

cmp():同比较操作符一样,内建的cmp()函数也根据字符串的ASCII码值进行比较

6.5.2 序列类型函数

(1)len()

(2)max()和min()

(3)enumerate()

(4)zip()

6.5.3 字符串类型函数

(1)raw_input()

(2)str() and unicode()

(3)chr()、unichr() and ord()

6.6 字符串内建函数

(1) string.capitalize() 把字符串的第一个字符大写

(2) string.count(str, beg=0, end=len(string)) 返回str在string中出现的次数,如果beg或end指定则返回指定范围内str出现的次数。

(3) string.find(str, beg = (), end = len(string)) 检测str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1。

(4) string.index(str, beg (), end = len(string) 与find方法一样,只不过如果str不在string中会报一个异常。

(5) string.isalnum() 如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。

(6) string.isalpha() 如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False。

(7) string.islower() 如果string中至少包含一个区分大小写的字符,并且所有这些区分大小写的字符都是小写,则返回True,否则返回False。

(8) string.join(seq) 以string作为分隔符,将seq中所有元素(字符串表示)合并为一个新的字符串。

(9) string.lstrip() 截掉string左边的空格。

(10) string.replace(str1, str2, num = string.count(str1)) 把string中的str1替换成str2,如果num指定,则替换不超过num次。

(11) string.split(str = "",  num = string.count(str)) 以str为分隔符切片string,如果num有指定值,则仅分隔num个子字符串。

(12) string.strip([obj]) 在string上执行lstrip()和rstrip()。

(13) string.swapcase() 翻转string中的大小写。

(14) string.title() 返回标题化的string,即所有单词均以大写开始,其余字母均为小写。

(15) string.upper() 转换string中的小写字母为大写字母。

6.7 字符串的独特特性

6.7.1 特殊字符串和控制字符

6.7.2 三引号

三引号的语法是一对连续的单引号或者双引号(通常都是成对的用),主要解决换行问题。

6.7.3 字符串不变性

(1)字符串是一种不可变数据类型,即它的值是不能被改变或修改的。

(2)不能对字符串中的单个字符进行索引赋值操作。

(3)连接符的操作时间是新建了一个字符串。

6.8 Unicode

6.8.1 术语

6.8.2 什么是Unicode

6.8.3 怎样使用Unicode

6.8.4 Codec是什么

6.8.5 编码解码

6.8.6 把Unicode应用到实际应用中

6.8.7 从现实中得来的教训

6.8.8 Python的Unicode支持

6.9 相关模块

6.10 字符串关键点总结

(1)一些引号风分隔符

(2)不可分字符类型

(3)字符串格式化操作符(%)提供类似printf()功能

(4)三引号

(5)原始字符串对每个特殊字符串都有使用它的原意

(6)Python字符串不是通过NUL或者‘\0’来结束的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: