一,名词理解
1,索引
在一本书里面,想要去找到某个章节在某页,最快的方法一般是通过目录去找到对应的章节名然后再看页数,这个过程就叫索引。类似的,在某个序列中,也是有类似的方法去快速定位到这个序列中的某个元素,这就是索引的方法
2,切片
切片就可以理解成,不只是去找到某一个元素,而是把这个序列中的很多个元素给一起拿出来。
3,序列
序列的意思可以理解成所存信息成一定顺序的集合,python中标准数据类型里是序列的有:字符串、列表、元组。
二,序列索引
分正向索引和反向索引,共同存在。正向索引从0开始,依次递增;反向索引从-1开始,依次递减。
像一个内容为 "Hello 1牛3 Python"的字符串,里面各字符对应索引,用图来表示如下:
实例:给一个字符串,内容为‘Hello,chick’,输出它的索引为4和-7的内容
Chic = ‘Hello,chick’
print(Chic[4] , Chic[-7])
输出
o o
如上实例所示,想拿出对应序列索引的内容,以**序列名[索引号]**的方式即可,如Chic[4]
三,序列切片
切片顾名思义就是从原有序列中切出某个片段,是结合索引进行操作的,具体格式如下:
起始索引:结束索引:步长
- 逻辑:从起始索引开始(包括),到结束索引为止(不包括),以给定步长拿出元素,如
Chic = 'Hello,chick'
print(Chic[4:6])
输出
o,
- 起始索引没指定,默认为0(步长为正数),从第一个元素开始;结束索引没指定,默认为序列的长度,如
Chic = 'Hello,chick'
print(Chic[:6])
print(Chic[4:])
print(Chic[:])
输出
Hello,
o,chick
Hello,chick
- 步长不写,默认为1,可以为负数(此时注意结束索引要在起始索引的左边,正负表示都可),代表按从右到左的顺序去取元素,如
Chic = 'Hello,chick'
print(Chic[-1:0:-2]) #此时步长为-2,所以起始索引为-1(同10),结束索引为0
输出
kicolH
四,索引和切片在数据上的区别
正如名字所定义的,一个是从原序列中取出某个元素,一个是将原序列切几刀得到我们想要的片段,两个的处理方式上有一个特别需要注意的就是:索引会降维,切片不会降维 如下例:
list1 = [123, "e", "l", "l", "o", " ,", "C","h", "i", "c", "k"]
print(list1[0])
print(list1[:1])
输出
123
[123]
可看到索引得到列表里面的一个元素, 123是整数类型;切片得到了列表的一个子列表, 它还是列表类型, 这个列表里面有一个整数类型的元素 123,也就是所谓的索引会降维,切片不会降维
这句话在后面的多维数组的处理时,是经常需要考虑到的,原理都可以用这句话来表示
涉及数据维度升维介绍 标量 -> 向量 -> 矩阵 -> 张量
五,涉及内置函数
len(s)
- 作用:返回传入s的长度(元素个数),s可为序列,也可为集合
Chic = 'Hello,chick'
print(len(Chic))
输出
11