序列数据结构
一种数据结构,成员有序排列,可经过下标偏移量访问它的一或多个成员。ide
序列类型函数
字符串(普通字符串和unicode字符串)、列表和元组spa
序列类型操做符code
成员关系操做符(in,not in)对象
做用:判断一个元素是否属于一个序列 语法格式:对象 [not] in 序列索引
>>> 'a' in 'ability'
True
>>> 'jon' not in ['job','Tom','Tony']
True
链接操做符(+)ip
做用:把一个序列和另外一个序列链接起来 语法格式:sequence1 + sequence2内存
>>> 'sequence' + 'copy'
'sequencecopy'
把全部的子字符串放到一个列表或可迭代对象中,调用join方法把全部内容链接在一块儿节约内存unicode
>>> ''.join(['sequence','copy'])
'sequencecopy'
合并两个或者多个列表,不依赖于方法的返回值
>>> s = [1,2,3]
>>> x = [4,5,6]
>>> s.extend(x)
>>> s
[1, 2, 3, 4, 5, 6
重复操做符(*)
做用:获取一个序列的多份拷贝,该操做符返回一个新的包含多份原拷贝的对象 语法格式:sequence * copies-int
>>> 'give me! '* 2
'give me! give me!
切片操做符([],[:],[::])
做用:经过指定下标的方式得到某一数据元素,或经过指定下标范围得到一组序列的元素。 语法格式:seq[index], seq[start:end], seq[start:end:step]
索引值:0 <= index <=len(seq)-1 和 -len(seq) <= index <=-1
>>> names = ('Faye','Leana','Daylen')
>>> names[1]
'Leana'
>>> ('Faye','Leana','Daylen')[1]
'Leana
seq[start:end]不包括结束索引值,若是没有提供索引值或者用None做为索引值,切片操做会从序列的最开始处开始,或者直到序列的最末尾结束
>>> names[0:2]
('Faye', 'Leana')
实现字符串翻转
>>> s = 'abcdefg'
>>> s[::-1]
'gfedcba'
小试牛刀:有一个字符串,经过一个循环按照这样的方式显示它:每次都把位于最后一个字符砍掉
>>> s = 'abcde'
>>> for i in [None] + range(-1,-len(s),-1):
print s[:i]
abcde
abcd
abc
ab
a
内建函数(BIF)
类型转换
函数 | 含义 |
list(iter) | 把可迭代对象转换为列表 |
str(obj) | 把obj转换成字符串 |
unicode(obj) | 把obj转换成unicode字符串 |
basestring() | 为str和unicode函数提供父类 |
tuple(iter) | 把一个可迭代对象转换成一个元组对象 |
可操做
函数名 | 功能 |
enumerate(iter) | 该对象生成iter每一个元素的index值和item值组成的元组 |
len(seq) | seq的长度 |
max(arg0,arg1...) | 最大值 |
min(arg0,arg1...) | 最小值 |
reversed(seq) | 返回一个逆序访问的迭代器 |
sorted(iter) | 返回一个有序列表 |
sum(seq) | seq的和 |
zip(it0,it1...) | 返回一个列表,列表的每个元素是参数列表的值组合 |