python有6种内建序列,包括列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。
所有序列类型都可以进行某种特定的操作,这些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multipllying)以及检查某个元素是否属于序列的成员(成员资格)。除此之外,还有计算序列长度、找出最大元素和最小元素的内建函数。
1、索引
序列中所有元素都有自己的编号--从0开始递增。使用负数索引时,python从最后一个元素开始计数,最后一个元素的编号是-1(不是-0,因为那会和第一个元素重合)。如下示例:
>>>name = 'foxsir' >>>name[0] 'f' >>>name[2] 'x'
>>>name[-1]
'r'
>>>name[-4]
'x'
2、分片
分片通过冒号相隔的两个索引来实现,用来访问一定范围内的元素,实现提取序列。分片的操作需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,而第二个不包含在分片内。
示例如下:
>>>numbers = [1,2,3,4,5,6,7,8,9,10] >>>numbers[3:6] [4,5,6] >>>numbers[0:1] [1] >>>numbers[:3] [1,2,3] >>>numbers[:] [1,2,3,4,5,6,7,8,9,10] >>>numbers[-3:] [8,9,10]
2.1、步长
步长是分片的第三个参数,默认是1,当显式设置大于1的数字时,就会跳过某些元素,当为负值的时候,表示从右到左提取元素。示例如下:
>>>numbers[0:10:1] [1,2,3,4,5,6,7,8,9,10] >>>numbers[::1] [1,2,3,4,5,6,7,8,9,10] >>>numbers[0:10:2] [1,3,5,7,9] >>>numbers[::2] [1,3,5,7,9] >>>numbers[3:6:3] [4] >>>numbers[::-1] [10,9,8,7,6,5,4,3,2,1] >>>numbers[10:0:-2] [10,8,6,4,2] >>>numbers[0:10:-2] [] >>>numbers[::-2] [10,8,6,4,2]
3、序列相加
通过使用加好可以进行序列的连续操作,只有相同类型的序列才能进行连接操作。示例如下:
>>>[1,2,3]+[4,5,6] [1,2,3,4,5,6] >>>'hello,'+''world' hello,world
4、乘法
用序列乘以数字num会生成一个新的序列,而且在新的序列中,原来的序列将被重复num次。示例如下:
>>>'fox'*5 'foxfoxfoxfoxfox' >>>[2]*5 [2,2,2,2,2]
5、成员资格
in运算符是一个布尔运算符,用来检查一个值是否在序列中,在则返回True,不在则返回False。示例如下:
>>>permissions = 'rw' >>>'w' in permissions True >>>'x' in permissions False >>>users = ['mlh','foo','bar'] >>>raw_input('Enter your user name: ') in users Enter your user name: mlh True >>>subject = '$$$ Get rich now !!! $$$' >>>'$$$' in subject True
6、长度、最小值、最大值
内建函数len返回系列中包含的元素数量,min和max函数分别返回序列中最大和最小的元素。示例如下:
>>>numbers = [100,34,678] >>>len(numbers) 3 >>>max(numbers) 678 >>>min(numbers) 34 >>>max(2,3) 3