4.1 认识序列

微视频

在Python语言中,序列主要包括集合、列表、元组、字典和字符串。对于这些序列有以下几个通用操作。不过需要注意的是,集合和字典不支持索引、切片、相加和相乘操作。

4.1.1 索引

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

例如,访问下面列表中的元素。

    >>>names = ['张三','王五', '张锋']
    >>>names[0]        #访问从左边数第1个元素
    张三
    >>>names[1]        #访问从左边数第2个元素
    王五

Python支持索引为负数。负数表示从右往左计数,也就是从最后一个元素开始计数。

例如,访问下面列表中的元素。

    >>>names = ['张三','王五', '张锋']
    >>>names[-1]       #访问从右边数第1个元素
    张锋
    >>>names[-2]       #访问从右边数第2个元素
    王五

大牛提醒

采用负数作为索引时,是从-1开始的,也就是最右边的元素的下标为-1。

4.1.2 切片

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

    sname[start : end : step]

各个参数的含义如下:

(1)sname表示序列的名称。

(2)start表示切片开始的位置(包含该位置),如果不指定,则默认为0。

(3)end表示切片结束的位置(不包含该位置),如果不指定,则默认为序列的长度。

(4)step表示切片的步长,如果省略,则默认为1。

下面进行举例说明:

    >>>names = ['张三','王五', '张锋','马六','陈平']
    >>>names[1:5]      #访问从左边数第2到第5个元素
    ['王五', '张锋', '马六', '陈平']
    >>>names[0:5:2]
    ['张三', '张锋', '陈平']

4.1.3 序列相加

通过+操作符,可以将两个序列相加。注意集合和字典不支持相加。

+号操作符经常用于字符串和列表元素的组合。例如:

    >>>x=[100,200,300]+ [400,500,600] + [700,800,900]
    >>>x
    [100, 200, 300, 400, 500, 600, 700, 800, 900]
    >>>y=["数学","英语","语文"]
    >>>z="我最喜欢的学科是"+y[1]
    >>>print(z)
    我最喜欢的学科是英语

4.1.4 序列相乘

*号运算符经常用于重复列表中的元素。

例如,将列表中的元素重复3次。

    >>>x=["数学","英语","语文"]*3
    >>>x
    ['数学', '英语', '语文', '数学', '英语', '语文', '数学', '英语', '语文']

4.1.5 检查序列中的成员

in运算符用于判断一个元素是否存在于序列中。语法格式如下:

    value in sequence

这里的value表示要检查的元素,sequence表示指定的序列。

例如,下面的代码及运行结果:

    >>>x=["数学","英语","语文"]
    >>>y="数学"
    >>>print(y in x)
    True
    >>>z="美术"
    >>>print(z in x)
    False

从结果可以看出,当元素是序列中的成员时,结果返回为True,否则返回为False。

大牛提醒

如果想要检查某个元素是否不在指定的序列中,可以使用not in运算符。

例如,下面的代码将返回为True。

    "美术" not in ["数学","英语","语文"]