Python基础03 序列

在Python中,最基本的数据结构为序列(sequence)。

序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。

用负索引表示序列末尾位置的位置。如-1表示最后一个元素,-2表示倒数第二个元素。

 

我们先了解下序列的概述,然后再了解下适用于所有序列(包括列表和元组)的操作。

一、序列概述

Python内置了多种序列,其中最长用的两种是:列表和元组。另一种重要的序列是字符串。

列表和元组的主要不同在于,列表是可以修改的,而元组不可以。

 

在需要处理一系列值时,序列很有用。例如

mike = ['Mike', 40]  # 分别表示一个人的姓名和年龄

 

序列还可包含其他序列:

john = ['John', 38]

all = [mike, john]

 

二、通用的序列操作

有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。

1、索引

序列中的所有元素都有编号--从0开始递增。可像下面这样使用编号来访问各个元素:

>>> greeting = 'Hello'
>>> greeting[0]
'H'

这称为索引。这种索引方式适用于所有序列。

 

当使用负数索引时,Python将从右(即从最后一个元素)开始向左数,因此-1是最后一个元素的位置。

>>> greeting[-1]
'o'

 

2、切片

>>> str = 'This is my first python program'
>>> str[5:18]
'is my first p'
>>> str[18:-2]
'ython progr'

切片适用于提取序列的一部分。

第一个索引是包含的第一个元素的编号,但并不包含第二个索引所在位置的元素。

 

如果要从列表末尾开始数,可使用负数索引。

>>> str[-3:-1]
'ra'

 

如果切片结束于序列末尾,可省略第二个索引。

>>> str[-7:]
'program'

如果切片始于序列开头,可省略第一个索引。

>>> str[:4]
'This'

如果要复制整个序列,可将两个索引都省略。

>>> str[:]
'This is my first python program'

 

执行切片操作时,也可以指定步长参数,默认为1。步长可正(从左向右提取元素)可负(从右向左提取元素)。

>>> str[5:18:2]
'i yfrtp'
>>> str[18:5:-2]
'y si ms'

 

3、序列相加

可使用加法运算符来拼接序列。

>>> [1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
>>> ['Hello, '] + ['Python!']
['Hello, ', 'Python!']

 

4、序列乘法

将序列与数x相乘时,将重复这个序列x次来创建一个新序列:

>>> 'python|' * 5
'python|python|python|python|python|'
>>> [10] * 5
[10, 10, 10, 10, 10]

 

5、成员资格

要检查特定的值是否包含在序列中,可使用运算符in。

满足时返回True,不满足时返回False。

>>> str = 'This is my first python program'
>>> 'm' in str
True
>>> 'my' in str
True
>>> users = ['Mike', 'John']
>>> 'Mike' in users
True

 

6、内置函数

内置函数len、min和max很有用。

len返回序列包含的元素个数。

min返回序列中最小的元素。

max返回序列中最大的元素。

>>> numbers = [10, 20, 30]
>>> len(numbers)
3
>>> max(numbers)
30
>>> min(numbers)
10
posted on 2020-03-04 16:39  麦克煎蛋  阅读(266)  评论(0编辑  收藏  举报