Python之序列详解

序列数据结构

一种数据结构,成员有序排列,可经过下标偏移量访问它的一或多个成员。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...) 返回一个列表,列表的每个元素是参数列表的值组合
相关文章
相关标签/搜索