1. 序列 (sequence)
1.1 基本概念
- 序列是Python 中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置 (索引) 并且序列中的数据会按照添加的顺序来分配索引
- 数据结构指的是计算机中数据存储的方式
1.2 序列的分类
- 可变序列(序列中的元素可以改变):例如 列表(list)、字典(dict)
- 不可变序列(序列中的元素不能改变):例如 字符串(str)、 元组(tuple)
2.列表(list)
2.1 什么是列表?
- 上面[‘小明’,‘小红’,‘小刚’] 就是一个列表
- 一个列表需要用中括号 [ ] 把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。
- 列表是Python中的一个对象
- 列表的作用:
- 列表中可以保存多个有序的数据
- 列表是用来存储对象的对象
2.2 从列表提取单个元素
- 偏移量: 列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。
1、偏移量都是从0开始的,而非从1开始。
2、列表名后加带偏移量的中括号,就能取到相应位置的元素。
2.3 从列表提取多个元素
切片:
-
切片是指从现有列表中获得一个子列表
-
通过切片来获取指定的元素
-
语法:列表 [起始 :结束:步长]
-
通过切片获取元素时,会包括起始位置的元素,不包括结束位置的元素
-
起始位置和结束位置的索引可以不写
- 如果省略结束位置,则会从当前的开始位置一直截取到最后
- 如果省略开始位置,则会从第一个元素截取到结束的元素,但是不包括结束的元素
- 如果开始位置和结束位置都省略,则会从第一个元素开始截取到最后一个元素
-
步长表示每次获取元素的间隔,默认是1 (可以省略不写)
-
步长不能为 0,但可以是负数
1 list = [5,6,7,8,9,]
2
3 print(list[:])
4 #打印出[5,6,7,8,9,]
5 print(list[2:])
6 #打印出[7,8,9,]
7 print(list[:2])
8 #打印出[5,6]
9 print(list[1:3])
10 #打印出[6,7]
11 print(list[2:4])
12 #打印出[7,8]
13 print(list[::2])
14 #打印出[5,7,9]
15 print(list[::-1])
16 #打印出[9,8,7,6,5]
切片口诀:左右空,取到头;左要取,右不取
- 前半句:冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。
- 后半句:冒号左边数字对应的元素要拿,右边的不动
注意细节:偏移量取到的是列表中的元素,但是切片截取到的是列表的某部分,还是列表
1 hero = ['钢铁侠','绿巨人','蜘蛛侠']
2 print(hero[2]) # 蜘蛛侠
3 print(hero[2:]) #['蜘蛛侠']
3. 通用操作
-
+ 和 *
- + 可以将两个列表拼接成一个列表
- * 可以将列表重复指定的次数( 注意: 两个列表不能够做乘法,要和整数做乘法运算)
-
in 和 not in
-
in 用来检查指定元素是否在列表当中
-
not in 用来检查指定元素是否不在列表中
-
len () 获取列表中元素的个数
-
max()获取列表中最大值
-
min() 获取列表中最小值
-
list . index(x ,start, end)
- 第一个参数,获取指定元素在列表中的位置
- 第二个元素,表示查找的起始位置
- 第三个元素,表示查找的结束位置
-
list . count(x) 统计指定元素在列表中出现的个数
4.修改列表
- 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
- 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
- 通过切片来删除元素
- del list [起始 :结束]
- list = [ ]
5.列表的方法
-
append() 向列表的最后添加一个元素,用append()给列表增加元素,每次只能增加一个元素。
-
insert(arg1, arg2) 向列表指定的位置插入一个元素。 参数1:要插入的位置, 参数2:要插入的元素
-
extend (iterable) 使用一个新的序列来扩展当前序列(它会将该序列中方的元素添加到列表中)
-
pop() 根据索引删除并返回指定元素
-
remove()删除指定元素(如果相同值的元素有多个,只会删除第一个)
-
reverse () 翻转列表
-
sort (key = None , reverse = False)用来对列表中的元素进行排序
* True 反序
* False 正序 -
del () 可以根据索引从列表中删除一个元素,也可以用于从列表中删除片段或清楚整个列表 (原理和切片类似,左取右不取)
6.遍历列表
6.1 for 循环
- 通过 for 循环来遍历列表
1 语法
2 for 变量 in 序列(遍历的规则):
3 代码块
- 注意: for 循环的代码块会执行多次,序列中有几个元素就会执行几次。每次执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
6.2 range(start, stop,step)
参数说明
- start: 计数从 start 开始。默认是从0开始。例如 range(5) 等价于 range(0,5)
- stop:计数到 stop 结束,但不包括 stop 。例如: range(0,5) 是 [0,1,2,3,4],不包括 5
- step :步长,默认为 1。例如: range(0,5) 等价于range(0,5,1)