python序列详解

·  阅读 57

什么是序列

序列指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可以通过下标或者索引访问它们。

python中三种基本的序列类型:

  • 字符串

  • 列表

    列表由一系列按特定顺序排列的元素组成。是python最常见的数据结构,用[]来表示列表

    例如:arr = [1,2,3,4,5]

  • 元组

    Python 的元组与列表类似,不同之处在于元组的元素不能修改。

    元组使用小括号,列表使用方括号。

    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    tup1 = (1,2,3,4,5)
    复制代码

序列的相关操作

序列索引

  1. 字符串

    s = "123"
    print(s[0])  # 1
    print(s[1])  # 2
    print(s[4])  # IndexError: string index out of range
    复制代码
  2. 列表

    list = [1, 2, 3, 4]
    print(list[0])
    print(list[1])
    print(list[5]) # IndexError: list index out of range
    复制代码
  3. 元组

    tuple = (1, 2, 3, 4)
    print(tuple[0])
    print(tuple[2])
    print(tuple[5])  # IndexError: tuple index out of range
    复制代码

注意点:

  1. 索引从0开始而不是1.

  2. 访问负数索引。 -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
    '''
    复制代码
  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 循环中。
分类:
后端
标签:
分类:
后端
标签: