注意:这里之所以叫序列是以为它的方法对列表,字符串,元组都起作用
索引
所谓索引其实就是下标,即每个元素对应的编号,当然下标是从0开始递增,用来访问各个元素
索引为正数时,即访问对应序列的元素,超过对应序列长度会报错
a='abc'
print(a[0])
#结果为a
索引为负数时,即为倒数第几个
a='abc'
print(a[-1])
#结果为c
这里的-1为倒数第一个
当然,这里和C语言一样,可以对索引值进行修改
切片
索引是访问单个元素,而切片是访问特定范围类的元素
a='zui,qiang,da,de,zuo,zhe'
print(a[1:5])
也可以理解为[1,5)左开右闭,索引为5的元素并没有被访问到
同理这里面的索引也可以为负数
a='zui,qiang,da,de,zuo,zhe'
print(a[-5:-1])
这里表示从倒数第5个切到倒数第一个的前面,但不会把最后一个元素切进去
当然可以省略左边和右边的索引
a='zui,qiang,da,de,zuo,zhe'
priint(a[:])
#这个a[:]表示a的全部序列
print(a[1:])
#'ui,qiang,da,de,zuo,zhe'
#这个则表示从第1个索引开始一直截取到序列末尾(包括序列末尾)
print(a[:-1])
#'zui,qiang,da,de,zuo,zh'
#这个表示从第0个(序列头部)一直截取到序列的最后一个前面
切片的步长
默认的切片的步长为1,故是从左往右一个一个截取,故只要在[]里再加一个数字就可以改变步长
问题:截取0到9中的所有奇数
a=list(range(10))#range是指0到9,没有10
a=a[1::2]
print(a)
#[1, 3, 5, 7, 9]
当步长为负数时一般就表示从右往左截取,但这里得注意左边的索引的位置必须得在右边的索引的位置的后面
逆向截取0到9中的所有偶数
a=list(range(10))
a=a[-1:0:-2]#这里的-1表示倒数第一个,0的表式第一个,
print(a)
#[9, 7, 5, 3, 1]
序列相加和相乘
序列的相加表拼接,序列和数字n的相乘表示重复n次
a=[1,3,2]
b=[4,5,6]
c=a+b
#c=[1,3,2,4,5,6]
d=a*3
#d=[1,3,2,1,3,2,1,3,2]