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
《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]
《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码]
在Ubuntu下用Python搭建桌面算法交易研究环境