一、序列
序列是python中的最基本的数据结构,它是一块用于存放多个值的连续内存空间,并且按照一定的顺序排列。每一个值(称为元素)都分配一个数字,称为索引或者位置,通过该索引可以获得相应的值。
python中有五个常用的序列结构,分别是:列表,元组、集合和字符串。python中的大部分序列结构都可以进行通用操作,包括索引、切片、序列相加、乘法、检查某个元素是否是序列的成员、长度、最小值、最大值以及元素和等。
1.索引
序列中的每一个元素都有一个编号,也成为索引。Python中的索引是从0开始递增的,即索引值为0表示第一个元素,以此类推。
#列表
x1=[2,4,6,8,10,12,14]
print(x1[0])
print(X1[1])
print("----------")
#结果
2
4
----------
通过上述代码可知,序列的元素是从0开始从左往右编号的,元素通过编号进行访问。索引非常灵活,还可以是负数。
#列表
x1=[2,4,6,8,10,12,14]
print(x1[-1)
print(X1[-2])
print("----------")
#结果
14
12
----------
python也可以从右往左编号,只要在前面加个负号即可。
2.切片
切片操作可以访问一定范围内的元素。实现切片操作的语法格式如下:
sname[start:end:step]
参数说明如下:
sname:表示序列的名称
start:表示切片的起始位置,包括该位置,如果不指定则默认为0
end:表示切片的结束位置,不包括该位置,如果不指定则默认为序列的长度
x1=[2,4,6,8,10,12,14]
print(x1[:5])
print(x1[5:])
print(x1[0:4])
print(x1[2:6])
print(x1[-5:-5])
print(x1[:])
print(x1[1:5:2])
print(x1[1:5:3])
print(x1[5::-1])
print(x1[5::-2])
#结果
[2,4,6,8,10]
[12,14]
[2,4,6,8]
[6,8,10,12]
[6,8,10]
[2,4,6,8,10,12,14]
[4,8]
[4,10]
[12,10,8,6,4,2]
[12,8,4]
由上面代码可知,切片也支持按照从右往左的顺序访问序列中的元素,并且当负数作为步长时,Python会从序列的尾部开始向左获取元素,直到第一个元素为止。【注意:步长参数不支持为0,否则会产生错误】
3.序列相加
在python中,使用“+”可以实现两种相同类型的序列相加操作,即两个序列进行连接,但是不去除重复的元素。【注:不同类型的序列是不能相加的】
4.乘法
可以使用“*”做乘法,在python中,使用数字n乘以一个序列会产生新的序列,新序列的内容为原来序列被重复n次的结果。
5.计算序列的长度、最小值、最大值以及元素和
1)使用len()函数计算序列的长度,即返回序列包含多少个元素。
2)使用min()函数返回序列中最小的元素
3)使用max()函数返回序列中最大的元素
4)使用sum()函数返回序列中的元素和
【注意】:sum()函数求和的要求是序列元素必须都为int型,由于字符串序列都是字符串,所以sum()函数无法对字符串序列进行求和。
二、列表
列表是由一系列按特定顺序排列的元素组成。在Python中,列表是内置的可变序列,用中括号“[]”表示,并且用逗号分隔其中的元素。列表元素可以是整数、实数、字符串、列表、元组等任何类型的内容,在同一个列表中,元素的类型可以不同,因为它们之间没有任何关系。
1)创建列表
创建列表时,可以用赋值运算符“=”直接将一个列表赋值给变量。
2)删除列表
对于以及创建好的列表,若不再使用,可以使用del语句删除
color=["white","red","blue"]
del color
1.列表排序
1)使用列表对象sort()方法对列表进行排序
2)使用内置的sorted()函数对列表进行排序【在python中,提供了一个内置的sorted()函数,用于对列表排序后,原列表的元素顺序不变】
2.列表的索引与切片
1)作为列表的基本操作之一的索引,是用来获得列表中的一个元素。它沿用序列类型的索引方式,即正向递增序号或者反向递增序号。索引序号不能超过列表的元素范围,否则会产生IndexError错误。例如,想获取用户输入年份的第四位:
>>> fourth=input('year:')[3]
year: 2005
>>> fourth
‘5’
对列表类型元素要进行遍历操作时可以使用遍历循环。可以使用for循环和enumberate()函数实现遍历列表。
2)切片
切片适用于提取序列的一部分,使用两个索引并用冒号分隔,它们的编号非常重要:第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号。
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6][4,5,6]
>>> numbers[0:1][1]
即第一个索引指定的元素包含在切片内,但是第二个索引指定的元素不包含在切片内。
3.访问、修改、添加和删除列表元素
1)访问列表元素
若要访问列表中的任意元素,只需要将该元素的位置告诉Python。要访问列表元素,可以指出列表的名称,再指出元素的索引,并将后者放在中括号内。
>>> color=["white","red","bule"]
>>> print(color[0])
white
2)修改列表元素
修改列表元素只需要通过索引获取该元素,再为其重新赋值即可。
3)添加列表元素
列表不能通过索引来添加元素,但Python提供了其他方式在既有列表中添加新元素。
①采用append()和extend()两种方法在列表末尾添加新元素【注意:append()方法每次只能增加一个新元素,如果想增加多个,使用extend()方法。append()方法后面无论是单个元素还是一个列表,都会把它当成一个新元素添加在原来的列表后面,而extend()方法则会展开。】
②采用insert()方法在列表中任意位置添加新元素。
4)删除列表元素
①使用del语句删除列表元素
②使用pop()方法删除列表元素
③根据元素值删除列表元素。
5.列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表
a1=[x for x in range (10)]
print(a1)
a2=[10,20,30,40,50,60,70,80,90,100]
print([int(x*0.5) for x in a2])
a3=[x for x in range(15) if x%3==0]
print(a3)
#输出结果如下
[0,1,2,3,4,5,6,7,8,9]
[5,10,15,20,25,30,35,40,45,50]
[0,3,6,9,12]
6.列表的其他操作
①使用reverse()方法反转列表元素的排列顺序【注意:只能反转排列顺序】
②使用count()方法统计某个元素在列表中出现的次数
三、元组
元组的定义如下:①元组是一种序列,与列表相似,可以使用小括号去定界;②元组中各元素之间用逗号隔开;③元组本身是一个不可变的数据类型,没有增删改查,如果要修改,可以采用其他数据类型对元组重新赋值;④元组内可存储任意类型。
1.元组的创建、访问以及删除和修改都和列表基本相同。
2.元组的推导式的表现形式和列表的推导式类似
3.使用元组的推导式生产的结果并不是一个元组或者列表,而是一个生成器对象。要使用该生成器对象可以将其转换成元组或者列表。其中,转换为元组使用tuple()函数,而转换为列表则使用list()函数。
4.元组的其他操作与列表类似(例如遍历元组)