1. 定义序列
- 用一对中括号将序列中的元素括起来
- 元素的下标从0开始计算
- 同一个序列中,可以是相同类型的元素,也可以是不同类型的元素
- 序列中的每个元素可以是另一个序列,这样的序列就相当于二维数组或者多维数组
2. 序列的基本操作
-
通过索引号操作序列元素
-
索引号的0指的是第一个元素,-1指的是倒数第一个元素,以此类推
-
可以通过索引号操作字符串中的元素
-
输出超过索引号指定的元素时,会抛出“IndexError: list index out of range”的异常
-
切片:简单理解为字符串序列的截取,需要指定开始索引和结束索引,索引下标从0开始,前闭后开,中间以冒号(:)分隔
-
开始索引和结束索引的顺序反了,则返回空序列,如a[-3:0]
-
可以省略结束索引号,默认为从开始索引一直到序列最后
-
可以省略开始索引号,默认为从头开始(索引号为0)截取,一直到结束索引号的前一位结束,也是不包括结束索引号所对应的元素
-
步长值:通常设置在中括号[ ] 的第三个位置,可正可负可省略,正数时开始索引号小于结束索引号[1:10:2],负数时开始索引号大于结束索引号[8:2:-2],省略步长值的话默认为1,步长值不可为0,为0时会抛出异常(ValueError: slice step cannot be zero)
看中括号里面的第一个参数和第二个参数的大小,如果第一个参数小于第二个参数,则步长值为正;如果第一个参数大于第一个参数,则步长值为负 -
总结:[s:e:step]
- step>0;s<e
- step<0;s>e
- step=0;异常
- step默认为1,s<e
-
range函数:创建一个证书列表,从0开始到参数值的上一个数字技术
-
序列可以进行相加,实质是序列首位相接
[1,2]+["hello"]=[1,2,3,'h','e','l','l','o']
-
字符串也属于序列,所以也可以相加,但字符串不能和序列进行相加操作
[1,2,3]+"hello" = 异常 TypeError: can only concatenate list(not 'str') to list
-
序列乘法:复制序列内容n次
-
序列长度:len,最大元素值:max,最小元素值:min
序列在进行max和min进行比较时,需注意序列中元素类型必须一致,否则会抛出异常
3. 列表的基本操作
- 列表元素赋值:和数组一样,利用列表的索引,如a[1]=‘1’
- 删除列表元素:del列表名[索引号],索引号可正可负,不可超过索引范围,否则会抛出异常
- 分片赋值:用另一个列表来修改原列表中的子列表
- list()函数:将字符串转换成由字符组成的列表
- 在列表中插入列表,则使开始索引和结束索引同号
n=[1,6,7] n[1,1]=[2,3] n=[1,2,3,6,7]
4. 列表的方法
方法名 | 含义 |
---|---|
append | 在列表最后插入新值 |
clear | 清空列表内容 |
copy | 复制一个表 |
remove(元素值) | 移除某个值第一次匹配项 |
sort | 对列表元素进行排序 |
count | 统计某个元素在列表中国出现的次数 |
extend | 列表结尾插入另一列表,无返回值 |
index | 某个值第一次出现的索引位置 |
pop(索引号) | 移除列表中的元素(不写的话默认为最后一个元素),返回该值 |
reverse | 反向存放列表元素 |
- 区分:
- append和序列的加法 :
[1,2]+[3,4]=[1,2,3,4] a=[1,2] a.append([3,4])=[1,2,[3,4]]
- 列表的连接的3种方法
- a=[1,2,3]
b=[4,5,6]
a.extend(b)
a=[1,2,3,4,5,6] (推荐使用) - a=[1,2,3]
b=[4,5,6]
a+b = [1,2,3,4,5,6] (效率更低,不建议使用) - a=[1,2,3]
b=[4,5,6]
a[len(a):]=b
- a=[1,2,3]
- 保留原列表,对列表的副本进行排序,默认为升序
- 分片操作:x=[5,4,1] ,y=x[:],y.sort()
- 使用sorted函数:x=[5,4,1],y.sorted(x)
- 降序排列:x=[5,1,4],x.sort(reverse=True)
- append和序列的加法 :
5. 元组
- 元组的本质也是序列
- 一次写入,后期不能修改
- 用逗号分割
- 用小括号作为元组的标志
- 创建元组:1,2,3或者(1,2,3)
- 单个元素的元组:1,或者(1,)
- 空元组:()
- 将列表转为元组:tuple([1,2,3])
- 综合概括:列表为可读可写的序列,而元组为只读序列