购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1
序列概述

序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,该数字被称为索引或位置。通过索引可以取出相应的值。

3.1.1 索引

序列中的每一个元素都有一个编号,也称为索引。这个索引是从0开始递增的,即下标为0表示第一个元素,下标为1表示第2个元素,以此类推。

Python的索引可以是负数,表示从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1,倒数第二个元素的索引值为-2,以此类推。

通过索引可以访问序列中的任何元素。

【例3.1】定义一个包括4个元素的列表,要访问它的第3个元素和最后一个元素,代码如下:

    verse = ['a', 'b', 'c', 'd']
    print(verse[2])        # 输出第3个元素
    print(verse[-1])  # 输出最后一个元素

结果如下:

    c
    d

3.1.2 切片

切片是访问序列中元素的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:

    sname[start:end:step]

参数说明:

● sname:序列的名称。

● start:切片的开始位置(包括该位置),如果不指定,则默认值为0。

● end:切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。

● step:切片的步长,如果省略,则默认值为1,当省略步长时,end后的冒号也可省略。

提示

在进行切片操作时,如果指定了步长,那么将按照该步长遍历序列中的元素,否则将一个一个地遍历序列。

【例3.2】随机生成一个列表,对该列表进行切片操作。

    >>> a = list(range(10))
     >>> a
     [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     >>> a[:5]
     [0, 1, 2, 3, 4]
     >>> a[5:]
     [5, 6, 7, 8, 9]
     >>> a[2:8]
     [2, 3, 4, 5, 6, 7]
     >>> a[::2]
     [0, 2, 4, 6, 8]
     >>> a[::-1]
     [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3.1.3 序列相加

在Python中,支持两种相同类型的序列相加,即将两个序列进行连接,不会去除重复的元素,使用加(+)运算符实现。

【例3.3】将两个列表相加。

    nba1 = ["德怀特,霍华德", "德维恩,韦德", "凯里,欧文", "保罗,加索尔"]
    nba2 = ["迈克尔,乔丹", "比尔,拉塞尔", "卡里姆,阿布杜尔,贾巴尔”,”威尔特,张伯伦", "埃尔文,
约翰逊", "科比,布莱恩特", "蒂姆,邓肯", "勒布朗,詹姆斯", "拉里,伯德", "沙奎尔,奥尼尔"]
    print(nba1 + nba2)

运行上面的代码,将输出以下内容:

    ['德怀特,霍华德', '德维恩,韦德', '凯里,欧文', '保罗,加索尔', '迈克尔,乔丹', '比尔,拉
塞尔', '卡里姆,阿布杜尔,贾巴尔”,”威尔特,张伯伦', '埃尔文,约翰逊', '科比,布莱恩特', '蒂姆,
邓肯', '勒布朗,詹姆斯', '拉里,伯德', '沙奎尔,奥尼尔']
提示

在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。

3.1.4 乘法

在Python中,使用数字n乘以一个序列会生成新的序列,新序列的内容为原来序列被重复n次的结果。

【例3.4】实现把一个序列乘以3生成一个新的序列并输出,从而达到“重要事情说三遍”的效果。

    phone = ["IPhone 11", "小米10 PRO"]
    print(phone * 3)

运行上面的代码,将输出以下内容:

    ['IPhone 11', '小米10 PRO', 'IPhone 11', '小米10 PRO', 'IPhone 11', '小米
10 PRO']

3.1.5 检查某个元素是不是序列的成员

在Python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中,其语法格式如下:

    value in sequence

参数说明:

● value:表示要检查的元素。

● sequence:表示指定的序列。

Python中,也可以使用not in关键字实现检查某元素是否不包含在指定的序列中。

【例3.5】检测某个元素是不是序列的成员。

    number=[1,2,3,4,5]
    if 1 in number:
        print("1 in number")
    if 0 not in number:
    print("0 not in number")

运行上面的代码,输出结果如下:

    1 in number
          0 not in number

3.1.6 计算序列的长度、最大值和最小值

在Python中,提供了内置函数计算序列的长度、最大值和最小值:使用len()函数计算序列的长度,即返回序列包含多少个元素;使用max()函数返回序列中的最大元素;使用min()函数返回序列中的最小元素。

【例3.6】计算序列的长度。

    mylist = ["apple", "orange", "cherry"]
 
    x = len(mylist)
 
    print(x)

运行上面的代码,输出结果如下: qT5hYZRXvnxRN1UgsKhMb7DsV/S3o50sNC5Wwsyz/V8DBymPi8Vicsy4PjSkG4HX

     3
点击中间区域
呼出菜单
上一章
目录
下一章
×