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

猜你喜欢

转载自www.cnblogs.com/ryanpan/p/9276208.html