序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引或位置。
在Pyton中,序列结构主要有列表、元组、集合、字典和字符串。
序列的切片
语法格式如下:
sname[start : end : step]
参数说明如下:
*sname* 表示序列的名称
*start* 表示切片的开始位置,默认为0
*end* 表示切片的结束位置,默认为序列的长度
*step* 表示切片的步长,默认为1
示例:
sname = [1, 2, 3, 4, 5, 6]
print(sname[1:5]) #获取第2个到第5个元素(索引从0开始计数)
print(sname[1:5:2]) #获取第2个到第5个元素,步长为2
以上代码输出以下内容:
[2, 3, 4, 5]
[2, 4]
序列相加
在python中支持相同类型的序列相加操作,即将两个序列进行连接,使用(+)运算符实现。
如:
a = [1, 2, 3]
b = ['a', 'b', 'c']
print(a + b)
以上输出:
[1, 2, 3, 'a', 'b', 'c']
如果不同类型的序列相加,则会报错。
检查某个元素是否是序列的成员(元素)
在python中,可以使用 in 关键字检查某个元素是否是序列的成员,即检查某个元素是否包含在该序列中。
如:
a = [1, 2, 3, 4]
print( 1 in a )
print(5 in a )
以上输出:
True
False
也可以使用 not in 关键字实现检查某个元素是否不包含在指定的序列中。
如:
a = [1, 2, 3, 4]
print( 1 not in a )
print(5 not in a )
以上输出:
False
True
有关序列的内置函数
计算序列的长度len()、最大值max()和最小值min()
在python中,提供了内置函数计算序列的长度、最大值和最小值。
a = [1, 2, 3, 4, 5, 8]
print(len(a)) #输出序列的长度
print(max(a)) #输出序列的最大值
print(min(a)) #输出序列的最小值
以上输出:
6
8
1
将序列转换为列表list()
a = (1, 2, 3, 4, 5, 8)
print(list(a)) #输出[1, 2, 3, 4, 5, 8]
将序列转换为字符串str()
a = (1, 2, 3, 4, 5, 8)
print(type(str(a))) #输出
计算元素和sum()
a = (1, 2, 3, 4, 5, 8)
print(sum(a)) #输出23
对元素进行排序sorted()、reversed()
sorted()函数默认由小到大升序排列,如果要按降序排序,需要加上第二个参数reverse=True
a = (5, 2, 6, 1, 4, 8)
print(sorted(a)) #输出[1, 2, 4, 5, 6, 8]
print(sorted(a, reverse=True)) #输出[8, 6, 5, 4, 2, 1]
降序排列也可以使用reversed()函数,但是返回的是一个降序的迭代器。
a = (5, 2, 6, 1, 4, 8)
print(reversed(a)) #输出
print(list(reversed(a))) #输出[8, 6, 5, 4, 2, 1]
枚举enumerate()
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法如下:
enumerate(sequence, [start=0])
参数说明:
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
该函数返回一个 enumerate(枚举) 对象
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(enumerate(seasons))
print(list(enumerate(seasons)))
print(list(enumerate(seasons,start=1)))
以上代码输出:
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]