序列是一种内部成员有序的可以通过下标偏移量访问到其一个或者多个成员的一种类型。序列类型成员有字符串、列表和元组,在这里一并介绍。
有关一些字符串、列表和元组的基本操作在综述里给出,本文不再赘述。
序列:有着相同的访问模式,并且有同样的操作符。
关系操作符:in,not in 返回值为True 或者是False
obj [not] in sequence
* | 将序列重复多次 |
+ | 序列的链接运算符 |
[:] /[::] | 切片运算符 sequence[starting_index : ending_index : step] sequence[::-1] 翻转操作 sequence [::2] 每两个里取一个 |
序列的工厂函数:
list() | 把迭代对象转换为列表 |
str() | 把obj对象转换为字符串 |
unicode() | 把对象转换为unicode串 |
basestring() | str和unicode函数的父类,是一个抽象函数,不能实例化 |
tuple() | 把迭代对象转换成一个元组 |
常用内建函数:
enumerate (iter) | 接受一个可以迭代的对象作为参数,返回以恶搞enumerate对象,可以生成有iter每个元素的index值和item值组成的元组。 |
len(seq) | 返回seq的长度 |
max(iter,key=None) min(arg0,arg1….key=None) | 返回iter或者元组中的最大值,如果指定了key,key必须是可以传给sort()函数的,用于比较的回调函数。 |
reversed(seq) | 返回一个逆序访问的迭代器 |
sorted(iter,fun=None,reverse=False) | 返回一个有序的列表,与list.sort()的含义一致 |
sum(seq,init=0) | 返回seq和可选参数init的综合,与reduce(operator.add,init)方法的含义一致 |
zip([it0,it1,….itN]) | 返回一个列表,第一个元素是it0,it1,….这些元素的第一个元素组成的一个元组,依此类推。 |
1.字符串
不可以对字符串进行修改,仅可以将字符串清空后再赋值,可以通过赋值空串或者得del函数进行字符串的清空。
支持通过成员操作符(in,not in)判断子串,类似功能的函数还有find(),index(),
字符串中的格式化符号:
%+d/i | 有符号十进制数 +表示显示数字的符号 |
%c | ASCII字符 |
%u | 无符号十进制数 |
%#o | 无符号八进制数,#表示显示0 |
%#x | 无符号十六进制数,#表示在数字之前显示0x |
%m.nf | 浮点数,m表示最小总宽度n表示小数点之后的位数 |
%e | 科学记数法 |
字符串模板: from string import Template
substitute() | Template对象的函数,更严谨 |
safe_substitute() | 当key缺失的情况下不会报KeyError的异常 |
其中通过${keyName}的形式在字符串中定义key。
原始字符串操作符 r/R,作用类似于字符串内部的转义字符‘\’,ep: print(r'\n')
unicode字符串操作符 u/U,把字符串转换为完全的unicode字符串对象。
常用的内建函数:cmp(), len(), max(), min(), enumerate(),zip().
find(str,beg=0,end=len(string)) | 检查是否str在字符串内,返回bool类型,从右开始查找的函数为rfind(). |
capitalize() | 将第一个字符大写 |
center(width) | 将字符串居中与width长度的心字符串中,用空格填充 |
count(str,beg=0,end=len(string)) | 返回str在字符串指定的范围内中出现的次数。 |
lower() | 将所有的字符全部小写,大写为upper() |
startswith(str,beg=0,end=len(string)) | 检查字符串是否以str在指定位置开头。同样有endswith() |
lstrip() | 截掉string左边的空格,同样有rstrip() |
ljust(width) | 返回一个字符串的左对齐,用空格填充至长度width |
string.repalace(str1,str2,num=string.count(str1)) | 将字符串中str1替换为str2,不超过num次 |
index(str,beg=0,end=len(string)) | 同find函数一样,但不在会报一个异常 |
判别函数:
isalpha() | 至少有一个字符,且字符都为字母或者数字 |
isdecimal() | 是否是十进制数字 |
isdigit() | 只包含数字 |
isnumeric() | 是否只包含数字字符,同上 |
islower() | 有至少一个区分大小写的字符,且均为小写 |
isupper() | 同上,均为大写 |
isspace() | 是否只包含空格 |
常用转义字符:
\n | 换行 |
\v | 纵向制表符 |
\r | 回车 |
\t | 横向制表符 |
2.元组
同列表的创建访问方式一致,但是不允许更改。
操作方式类似于字符串
所有的函数返回的多对象均为元组类型
在列表中存在单元素列表,但是不存在单元素的元组,因为()可以表示分组的含义,不一定表示元组的含义,如果实在需要一个单元素的元组那么可以声明为(obj1,)
元组通常可以用作一个字典的key,当处理一组对象的时候,组默认是元组类型。
3.列表
支持列表所支持的操作,可以包含任意数量的python对象和用户自定义的对象。元素可以更新。
删除某一元素可以用del语句,也可以用remove() 方法
内建函数增加了
sorted() | 排序 |
reversed() | 反序 |
list()/tuple() | 接受一个迭代对象,通过浅拷贝创建新的列表或者元组 |
append(obj) | 向列表中增加一个元素 |
extend(seq) | 把序列中的内容添加到列表中 |
insert(index,obj) | 在索引index后添加obj |
remove(obj) | 从列表中删除obj |
pop(index=-1) | 删除并返回制定位置的对象,默认为最后一个 |
可以通过列表构造堆栈(LIFO)和队列(FIFO)
*欢迎大家关注我的个人微信公众号学习更多相关的知识:Opportunity_s
欢迎提出宝贵意见!
Opportunity的程序猿笔记