什么是序列
序列指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可以通过下标或者索引访问它们。
python中三种基本的序列类型:
-
字符串
-
列表
列表由一系列按特定顺序排列的元素组成。是python最常见的数据结构,用
[]
来表示列表例如:
arr = [1,2,3,4,5]
-
元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tup1 = (1,2,3,4,5)
序列的相关操作
序列索引
-
字符串
s = "123" print(s[0]) # 1 print(s[1]) # 2 print(s[4]) # IndexError: string index out of range
-
列表
list = [1, 2, 3, 4] print(list[0]) print(list[1]) print(list[5]) # IndexError: list index out of range
-
元组
tuple = (1, 2, 3, 4) print(tuple[0]) print(tuple[2]) print(tuple[5]) # IndexError: tuple index out of range
注意点:
-
索引从0开始而不是1.
-
访问负数索引。 -1访问到的是序列倒数第一个元素,-2访问到的是序列倒数第二个元素
print("演示负数索引") print(s[-1]) print(s[-2]) # print(s[-4]) # IndexError: string index out of range print(list[-1]) print(list[-2]) # print(list[-5]) # IndexError: list index out of range print(tuple[-1]) print(tuple[-2]) # print(tuple[-5]) # IndexError: tuple index out of range ''' output 演示负数索引 3 2 4 3 4 3 '''
-
不管访问的是整数索引还是负数索引,都不能越界。
序列拼接
支持两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。
这里所说的“类型相同”,指的是“+”运算符的两侧序列要么都是列表类型,要么都是元组类型,要么都是字符串。
print(str + list) # can only concatenate str (not "list") to str
序列重复
使用数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果。比较特殊的是,列表类型在进行乘法运算时,还可以实现初始化指定长度列表的功能。例如如下的代码,将创建一个长度为 5 的列表,列表中的每个元素都是 None,表示什么都没有。
str = "shawn"
print(str*3) # shawnshawnshawn
序列切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列。
序列实现切片操作的语法格式如下:
sname[start : end : step]
其中,各个参数的含义分别是:
- sname:表示序列的名称;
- start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;
- end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;
- step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。
str = "shawn"
print(str[0:2]) # 左闭右开 结果sh
print(str[::2]) # 从0开始,每隔2步取元素,san,包括0
序列成员
可以使用 in或者not in 关键字检查某元素是否为序列的成员
str = "shawn"
print("s" in str) # True
print("s" not in str) # False
内置的序列函数
函数 | 功能 |
---|---|
len() | 计算序列的长度,即返回序列中包含多少个元素。 |
max() | 找出序列中的最大元素。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。 |
min() | 找出序列中的最小元素。 |
list() | 将序列转换为列表。 |
str() | 将序列转换为字符串。 |
sum() | 计算元素和。 |
sorted() | 对元素进行排序。 |
reversed() | 反向序列中的元素。 |
enumerate() | 将序列组合为一个索引序列,多用在 for 循环中。 |
网友评论