通用序列的操作(可在所有序列数据上面使用的操作方法):
索引(indexing):用来访问单个元素;序列中的索引编号从0开始;使用负数时,Python会从右边,也就是最后一个元素开始计数,此时的位置编号从-1开始
分片(sliceing):用来访问一定范围内的元素;范围边界由[a:b]来指定,其中a和b表示元素在索引中的位置,需要注意的是包含位置a上的元素但不包含位置b上的元素;分片有几个小技巧:
[a : ]从位置a开始一直到序列的结束;
[ : b] 从序列最开的一直到位置b上的元素;
[ : ]包括了全部序列中的所有元素;
[-3 : ]序列的最后3个元素;
[-3, 0]这种分片方式会得到一个为空的列表[ ],因为分片中最左边的索引只能比它右边的早出现[先左后右嘛 :)];
在分片中还可以设置步长,其默认值为1,如果设置了步长比1大,那么就会跳过某些元素;可以是负数,那就会从右到左提取元素,但不能为0;
number=[1,2,3,4,5,6,7,8,9]
number[3 : 1] # [ ]
number[3 : 1 : -1] # [4, 3]
number[ : 1 : -2] # [9,7,5,3]
number [1 : 4 : 0] # ValueError: slice step cannot be zero
序列相加(adding):形成一个合并后的新序列,原来的序列保持不变;必须是相同类型的序列才可以进行连接操作,因此列表和字符串是无法连接在一起的。
>>> x=[1,2]
>>> y=[3,4]
>>> x+y
[1, 2, 3, 4]
>>> x
[1, 2]
>>> y
[3, 4]
乘法(multiplying):用数字n乘以一个序列,会产生一个新的序列,原来的序列将被重复n次:
>>> 7 * ['th']
['th', 'th', 'th', 'th', 'th', 'th', 'th']
>>> '42' * 10
'42424242424242424242'
空列表、None和初始化
空列表可以通过[ ]来表示-里面什么东西都没有;但是如果你想创建一个占用十个元素的空间,却不包括任何有内容的列表就需要使用None(None是一个Python内建值,代表"这里什么也米有的意思");如果想初始化一个长度为10的列表:sequence=[None] * 10
成员资格:用来检查一个值是否在序列中,条件为真返回True,条件为假返回False:
>>> names = ['mark','finch','ron','woz']
>>> raw_input('Enter your name:') in names
Enter your name:finch
True
长度(length):len(seq) 返回序列中所包含的元素的数量;
最大值(max)/最小值(min):max(seq) / min(seq) 返回序列中最大和最小的元素:
>>> max(2,4,58)
58
>>> min(1,0,-3,-5)
-5