第六讲 列表
1.序列
1.1 基本概念
- 序列是Python中的一种数据结构。
- 数据结构:计算机中存储数据的方式。
1.2 分类
- 可变序列:列表、字典、集合…
- 不可变序列:字符串、元组…
2.列表
2.1 如何使用列表
- [] 创建一个空的列表 list列表对象。
- 列表中存储的数据我们称之为元素。
- 列表可以保存任意对象,甚至于函数。
- 我们可以通过索引(index)来获取列表中的元素
索引就是元素在列表中的位置,列表当中每一个位置都会有一个索引,索引是从0开始,列表的第一个位置就是0,第二个位置是1,以此类推。
- len()函数可以获取列表的长度(列表元素的个数)
总结:获取列表的长度,可以是列表的最大索引值+1
- 索引可以为负数,如果索引为负是从后往前获取 -1表示最后一个 -2表示倒数第二个 以此递推。
2.2 切片
- 切片:是指从现有列表中,获取一个子列表。
- 可以通过切片获取指定的元素。
语法:列表[起始:结束:步长]
通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素。(左闭右开)
- 通过切片会获取一个新的列表,不会影响原来的列表。
- 起始位置和结束位置可不可以不写?
- 步长可以省略,默认值为1。
步长可以为负数但是不能为0。
- 步长可以为负。
3.通用操作
3.1 + *
- +可以将两个列表拼接成一个列表。
- *可以将列表重复指定的次数。
3.2 in、not in
- in用来检查指定元素是否在列表中
如果在,返回True
如果不在,返回False
3.3 其他
- min() 获取列表中的最小值 max() 获取列表中的最大值
- s.index(x[, i[, j]]) s.count(x)
s.index() 可以获取指定元素在列表中的位置。
s.count(x) 获取指定元素在列表中出现的次数。
注意:函数和方法的区别
xxx() 函数 function
yyy.xxx() 方法:比较特殊的函数,需要对象来引用 method
4.修改列表
4.1 通过索引修改
4.2 通过 del 来删除元素
!!! 注意:del是关键字,不是函数。
4.3 通过切片来修改
- 通过切片来修改。
- 向索引为0的位置插入了一个元素。
- 当设置了步长的时候,序列中元素的个数必须和切片中元素的个数保持一致。
- 可以通过切片来删除元素。
- 注意:string是不可变序列,不能采取以上的方式进行修改,除非转变为可变序列,再对其中的字符做替换。
4.4 通过方法来修改
- s.append() 向列表最后添加元素。
- s.insert() 向列表中指定的位置插入一个元素 第一个参数 要插入的位置 第二个参数 要插入的元素。
- s.extend() 使用新的序列来扩展当前的序列。
- 清空列表。
- s.pop() 根据索引删除并返回指定的元素。
- s.remove() 删除指定值的元素,没有返回值。
当序列中有多个指定的需要删除的元素时,remove只能删除第一个。
- s.reverse() 用来反转列表。
- s.sort() 用来对列表中的元素进行排序,默认升序。
5.遍历列表和range()函数
5.1 遍历列表
- 遍历列表:指的是将列表中的元素取出来。
- 通过for循环来遍历列表
for循环的代码块会执行多次,序列中有几个元素就会执行几次。
每执行一次,就会将序列中的元素赋值给变量。
语法:
for 变量 in 遍历的内容:
代码块
5.2 range()函数
- (开始,结束,步长)函数
开始:默认是从0开始 例如 range(5) 等价于 range(0, 5) 0可以省略
结束:不包括结束 例如range(0,5) 是多少? [0, 1, 2, 3, 4]
步长:默认为1 可以省略 例如range(5) 等价于 range(0, 5) 等价于 range(0, 5, 1)
课堂复习
- 序列:
- 概念
- 数据结构
- 序列的分类
- 列表的快速入门:
- 概念
- [] list
- 切片 语法[开始、结束、步长]
- 通用操作:
- 乘 加
- in、not in
- len() max() min() s.index() s.count()
- 修改列表
- 索引
- 通过切片
- del
- 通过方法:s.append() s.insert() s.extend() s.pop() s.remove() s.clear() s.reverse() s.sort()
- 遍历列表和range()函数
- 语法和特点