Python学习(4)序列:索引、切片、序列相加、乘法(Multiplying)、检查某个元素是否是序列的成员(元素)、计算序列的长度和最大最小值
4.1序列
序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引或位置。通过该索引可以取出相应的值。例如,我们可以把一家酒店看作一个序列,那么酒店里的每个房间都可以看作是这个序列的元素。房间号就相当于索引,可以通过房间号找到对应的房间。
4.1.1索引
序列中的每个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第二个元素,从左向右,依此类推。Python神奇的是:它的索引可以是负数,这个索引从右向左计数,即最后一个元素索引值是-1,倒数第二个元素索引值为-2。
通过索引可以访问序列中的任何元素,例子如下:
a = ["haha","hello","moshi","python"]
print(a[2]) #输出第三个元素
print(a[3]) #输出最后一个元素
4.1.2切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素。实现切片操作语法格式如下:
sname[start:end:step]
参数说明:
sname #序列的名称
start #切片的开始位置(包括该位置),如果不指定,则默认为0
end #切片的截止位置(不包括该位置),如果不指定,则默认为该序列的长度
step #切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略
例子如下:
b = ["a","b","c","d","e","f","g"]
print(b[2:5]) #获取第三个到第五个元素
print(b[0:5:2]) #获取第一个,第三个,第五个元素
如果想要复制整个序列,可以将start和end参数都省略,但中间的冒号需要保留。例如,b[:]就表示复制整个名称为b的序列。
4.1.3序列相加
再Python中,支持两种相同类型的序列相加操作。即将两个序列进行连接,使用加(+)运算符实现。例如:
a = ["haha","你好","moshi","python"]
b = ["a","b","c","d","e","f","g"]
print(a+b)
序列相加时,序列中元素类型可以不同,但必须是相同序列:同为列表,元组,集合,不能是列表和元组相加或者列表和字符串相加,上面程序结果为:
[‘haha’, ‘你好’, ‘moshi’, ‘python’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’]
错误的相加程序如下:
num = [2,3,2,1,5]
print(num+"大家好")
4.1.4乘法(Multiplying)
在Python中,使用数字n乘以一个序列会生成新的序列。新序列的内容为原来序列被重复n次的结果。例子如下:
a = ["haha","你好","moshi","python"]
print(a*3)
结果为:
[‘haha’, ‘你好’, ‘moshi’, ‘python’, ‘haha’, ‘你好’, ‘moshi’, ‘python’, ‘haha’, ‘你好’, ‘moshi’, ‘python’]
在进行序列的乘法运算时,还可以实现初始化指定长度列表功能。例如下面的代码,将创建一个长度为5的列表,列表的每个元素都是None。
c = [None]*5
print(c)
结果为:
[None, None, None, None, None]
4.1.5检查某个元素是否是序列的成员(元素)
在Python中,可以使用in或者not in 来检查某个元素是否为序列成员。语法格式如下:
value in sequence #value表示要检查的元素
value not in sequence #sequence表示指定序列
例子如下:
a = [1,2,3,4,5,6]
print(1 in a) #结果为True
print(1 not in a) #结果为False
4.1.6计算序列的长度、最大值、最小值
在Python中,提供了内置函数计算序列的长度,最大值,最小值。分别为len(),max(),min()。
实例如下:
a = [1,2,3,4,5,6]
print(len(a)) #结果为 6
print(max(a)) #结果为 6
print(min(a)) #结果为 1
除了上面的三个内置函数,Python还提供了如下表所示的内置函数: