常见的序列的操作:索引,切片,相加,相乘,成员资格检查
1、索引
索引代表它在序列中的位置,第一个索引是0,第二个是1,以此类推,计算机吧,常见的数字就是0和1嘛,用一个字符串来感受一下索引。
>>> char='Hello'
>>> char[0]
'H'
>>> char[1]
'e'
>>> char[2]
'l'
>>> char[3]
'l'
>>> char[4]
'o'
......
从上看出,一般取元素,都是从左到右,编号从0,1,2,3,4,等等,这是正着取,也可以倒着取,不信,你看
>>> char='Hello'
>>> char[-1]
'o'
>>> char[-2]
'l'
>>> char[-3]
'l'
>>> char[-4]
'e'
>>> char[-5]
'H'
>>>
从右往左取的时候,索引从-1开始,没有0,而0代表的是正,从左到右,这样一看,如果你们想要取一个字符串或者列表开头和结尾的元素,快速方便,就是list[0]和list[-1],不用再考虑它的长度。
2、切片
由上文可知,索引是用来访问单个元素的,那是否有可以一下子访问多个元素呢,当然肯定是有的,切片就是滴,切片通过冒号相隔的两个索引实现,看看下面的例子:
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[1:3]
[2, 3]
>>> number[2:5]
[3, 4, 5]
>>> number[-3:-1]
[8, 9]
>>>
由以上可知,分片即支持正数索引,也支持负数索引,分片[a:b]的取值范围 a =< x < b,这边a和b都是有值的,如果没有值呢,会怎么取呢,如下所示:
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[1:5]
[2, 3, 4, 5]
>>> number[:5] --如果第一个索引值没有,则从头开始取值
[1, 2, 3, 4, 5]
>>> number[:] --开始值和结束值都没有,则取全部元素
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> number[1:] --第二个索引值没有,则从第一个元素开始取,取到最后
[2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
2.1 步长
其实,分片的正确格式[a:b:c],a和b是索引位置,c是步长,在分片中,步长的默认长度是1,你也可以单独设置步长,如下所示
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[2:5]
[3, 4, 5]
>>> number[2:5:1]
[3, 4, 5]
上面[2:5]和[2:5:1]取值一样,直接说明默认步长是1
>>> number[2:5:2]
[3, 5]
>>> number[::2]
[1, 3, 5, 7, 9]
>>>
3.序列相加,其实序列相加,也就是序列的拼接,python中的序列相加:只支持相同数据类型的相加,否则会报错
>>> a = [1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a + b
[1, 2, 3, 4, 5, 6, 7]
>>> 'a' + 'b'
'ab'
>>> 'a' +1
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
'a' +1
TypeError: must be str, not int
>>>
4.序列相乘
>>> 'a' * 5
'aaaaa'
>>> 'I Love YOU ' * 2
'I Love YOU I Love YOU '
>>>
其实,序列相乘,跟咱们想象的数值相乘是不太一样的,它是将这个序列重复X次
5.成员资格检查,就是判断要检查的值是否存在某序列中
>>> 'I' in 'I love You'
True
>>> 'love' in 'I love You'
True
>>> 'HeNan' in 'I love You'
False
>>>