序列通常是指一组有序的数据集合,其本质是一块存储多个值的连续内存空间,每个值都有对应的位置编号(索引),这些值具有一定的顺序,可以通过索引访问对应的值。
在 Python 中,序列不是一种特定的数据类型,只是一种存储数据的方式,字符串、元组、列表、集合、字典都可以归属于序列。序
列一般具有几种通用操作,如索引、切片、相加、相乘操作。因为集合和字典的无序性,因此它不具备这4种通用操作。
索引
一般来讲,序列内部的数据都是按照一定的顺序排列的,其中每个元素都有对应的位置编号(索引),如果一个序列中有 n 个元素,其起始元素的下标(索引)为 0,其余元素下标按照顺序依次递增,直至结尾元素的下标为 n-1 为止。
序列中元素与索引的下标序列如图1所示。
图1:序列中元素与索引的下标序列
在 Python 中序列的下标还可以使用负数的形式,其中结尾元素 n 的下标为 -1,向起始元素方向依次递减,直至起始元素的下标为 -1-n 为止。序列中元素与下标的负数形式如图2所示。
图2:序列中元素与下标的负数形式序列
切片
在序列中,元素一般按照一定的顺序排列,而且每个元素都有相对应的索引,可以通过索引对元素进行访问。
对于元素的访问除了索引的方式,还可以使用切片的方式。
-
索引只能获取一个元素,其返回的是访问元素的数据类型;
-
切片方式获取的是多个元素,其返回的是一个新的序列。
切片的用法如下:
序列名[start:end:step]
对格式的说明:
-
start 是切片开始位置的索引值,包含该位置的元素,可以省略,默认值为0;
-
end 是切片结束位置的索引值,不包含该位置的元素,可以省略,默认为序列的结尾;
-
step 是步长,也就是间隔的元素个数,可以省略,默认为 1。
序列切片的常用方法如下(以字符串为例):
1) 取整个字符串
string='Python程序员面试笔试通关攻略'
#取全部(“[]”中的“:”不能省略)
result=string[:]
print(result)
运行结果如下:
Python程序员面试笔试通关攻略
2) 省略起始位置
string='Python程序员面试笔试通关攻略'
#省略起始索引(不包含结束索引位置的元素)
result=string[:6]
print(result)
运行结果如下:
Python
3) 使用步长
string='Python程序员面试笔试通关攻略'
#使用步长(间隔元素的个数)
result=string[0:len(string):2]
print(result)
运行结果如下:
Pto程员试试关典
4) 使用负数进行取值
string='Python程序员面试笔试通关攻略'
#使用负数索引(取最后两个元素)
result=string[-2:]
print(result)
运行结果如下:
宝典
序列相加
序列相加,就是将两个序列进行连接,形成一个新的序列,这个新序列中会保留之前两个序列中重复的元素。
需要注意的是,进行序列相加操作的两个序列必须是同种类型,如两个字符串进行相加操作。
以字符串为例,序列相加操作如下:
#序列1
str1='Python程序员面试'
#序列2
str2='Python程序员笔试'
#序列相加
str=str1+str2
print(str)
运行结果如下:
Python程序员面试Python程序员笔试
序列相乘
序列相乘是指一个序列与一个非零的正整数 n 相乘,其相乘结果是一个新的序列。新序列是原有序列内元素重复n 次的结果。
以字符串为例,序列相乘操作如下:
string='Python程序员面试笔试通关攻略'
#序列相乘
str=string*2
print(str)
运行结果如下:
Python程序员面试笔试通关攻略Python程序员面试笔试通关攻略
本文链接:http://task.lmcjl.com/news/14113.html