python学习[第五篇] 数据类型之 序列
序列定义
序列中的成员是有序排列的,并且可以通过下标偏移量访问到他的一个或者几个成员。 包括:字符串,列表和元组。
序列类型有相同的访问模式,他的每一个元素可以通过指定一个偏移量的方式得到,而多个元素可以通过切片操作的方式一次得到。下标偏移量从0开始到总元素-1.
序列操作符
1 标准类型操作符
对象值的比较: < 、>、 <=、 >=、 ==、 != 、<>
对象身份比较: is 、is not
布尔操作符: not 、and、 or
2序列类型操作符
#成员关系操作符(in 、 not in) sub_seq in sequence sub_seq not in sequece #连接操作符 sequence1+sequence2 #重复操作符 sequence * copies_int #切片操作符([][:][::]) #访问单一元素 index 可以为正数或复数 但是有范围要求,如果越界会报错误IndexError: string index out of range #index 为正数时, 0<= index <=len(sequence)-1 #index 为负数时,-len(sequence)<=index<=-1 sequence[index] #访问多个元素 切片操作 如果start 和end没有指定则为None作为索引值 sequence(start:end) #带步长的切片操作 步长可正可负 步长为负时start和end也应为负 start和end可以超过字符串的长度 sequence(start:end:step) s[::-1]字符串反转 s[::2] 隔一个取一个 ['abc','def','ghi'][-100:100] #循环显示字符串,每次删除最后一个字符 a='abcde' for i in [None]+range(-1,-len(a),-1): print a[:i] [None].extend(...)返回None,None既不是序列也不是可迭代对象.
序列内建函数
可迭代对象:可以通过for循环遍历所有元素的可迭代类型
1 类型转换内建函数(工厂函数)
list(iter) tuple(iter) str(obj) unicode(obj) ###basestring()
list('1234') ['1', '2', '3', '4'] tuple('1234') ('1', '2', '3', '4') str('1234') '1234' unicode('1234') u'1234'
2 可操作内建函数
enumerate() max() min() reversed() sorted() sum () zip()
#enumerate() 接受可迭代对象作为参数,返回一个enumerate对象,该对象生成由iterm每个元素的index值和item值组成的元组 for x in enumerate('xyz'): print x (0, 'x') (1, 'y') (2, 'z') # len 返回字符串的长度 len('xyz') 3 #max 返回iter或 (arg0,arg1..)中的最大值 key是函数,可以不指定 max(iter,key=None) max(arg1,arg2,key=None) max('abc') 'c' max('abc','def') 'def' #min 返回iter或 (arg0,arg1..)中的最小值 min(iter,key=None) min(arg1,arg2,key=None) #reversed 接收 一个iter参数,逆序返回一个reversed对象 x='abc' y=reversed(x) <type 'reversed'> type(y) for z in y: print z c b a #sorted 接收iter参数,可指定 reverse=False/True, 返回一个有序的列表 sorted(iter,func=None,key=None,reverse=False) x=sorted('abc',reverse=True) print x ['c', 'b', 'a'] #zip返回一个列表,其第一个元素是it0,it1这些第一个元素组成的一个元组,第二个类推 zip(iter1,iter2,iterN) zip('abc','def','ghi') [('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')] #sum函数 返回iter和可选参数init的总和 (字符串不可以做参数,数字不可以做参数,数字字典和数字元组可以) sum(iter,init=0) sum([12,34]) 46 sum([12,34.1],1) 47.1