(源自:https://www. cnblogs. com/zhaoyang1997/p/10325040. html )
一 列表
1. 什么是列表
1. 列表是一种容器(用来存储数据对象)
2. 列表能够存储多个数据对象 - 序列
3. 列表是一个可变序列
4. 列表中的数据元素们会有先后顺序
2. 创建列表的方式
1. 使用字面值的方式创建列表
1. 创建空列表
L = [ ]
2. 创建非空列表
2. 使用列表的构造函数创建列表
1. 生成空列表
L = list() # list() 是列表的构造函数,效果等同于 [ ]
2. 使用可迭代对象创建列表
L = list("hello") # ['h','e','l','l','o']
L = list(range(5,10,2)) # [5,7,9]
3. 列表的运算
1. 算术运算
+,+=,*,*=
1. + 作用:拼接列表
2. += 作用:用于将右侧的可迭代对象的数据追加到原列表中
3. * 作用:生成重复的列表
2. 比较运算
< <= > >= == !=
规则:与字符串的比较规则完全相同
1. [1,2,3] < [1,3,2] 结果:True
2. [1,2,3] != [1,3,2] 结果:True
3. [1,'two'] > ['two',1] 结果:TypeError
3. 成员运算
in / not in
in : 判断一个元素是否存在于列表中,存在返回True,否则返回False
not in : 取值同 in 相反
4. 索引操作
1. 索引
列表[整数]
用法:等同于字符串的索引操作(正向索引和反向索引,规则与字符串完全相同)
5. 列表的切片 - slice
1. 作用 等同于字符串的切片
得到列表中某段连续或符合某特征的子列表
2. 列表的切片取值
语法:列表[start : stop : step]
3. 列表的切片赋值
列表[切片] = 可迭代对象
注意:列表切片赋值运算符的右侧必须是可迭代对象
6. del 语句
作用:删除列表中的元素
语法:
del 列表[索引]
del 列表[切片]
二 列表的常用方法
1. 列表中常用方法 - list api
>>> help(list)
2. 详解
1. append()
作用:在列表的末尾添加新元素
语法:L. append(obj)
参数 obj:表示要添加到列表末尾的对象
返回值:无,但是会修改原来的列表中的值
2. count()
作用:统计某个元素再列表中出现的次数
语法:L. count(obj)
参数 obj:要统计的对象
返回值:返回obj在列表中出现的次数
3. extend()
作用:用于在列表末尾一次性增加另一个序列中的多个值(用新列表扩展原列表中的值)
语法: L. extend(seq)
参数 seq: 要扩展的元素列表(序列)
返回值:无,但会改变原列表中的值
4. insert()
作用:用于将指定对象插入到列表的指定位置处
语法:L. insert(index,obj)
参数 index:对象obj需要插入的索引位置
参数 obj:需要插入的对象
返回值:无,会改变原列表中的内容
5. index()
作用:用于从列表中找出某个值第一次匹配的索引位置
语法:L. index(obj)
参数 obj :要查找的对象
返回值:返回该对象对应的索引位置
注:如果没找到的话则抛出异常
6. pop()
作用:用于移除列表中的一个元素(默认是最后一个),并返回该元素的值
语法:L. pop([index=-1])
参数 [index=-1] : 可选参数,要移除的列表的元素的索引值,不能超过列表总长度,默认值为-1,表示删除最后一个列表值
返回值:返回从列表中移除的元素
7. remove()
作用:移除列表中某个值的第一个匹配项
语法:L. remove(obj)
参数 obj:要移除的内容
返回值:无,但原列表中第一次匹配的内容会被删除
8. reverse()
作用:将列表进行翻转
语法:L. reverse()
参数 :无
返回值 :无,会改变原有的列表值
9. sort()
作用:对原列表进行排序
语法:sort(reverse=False)
参数 reverse :排序规则,默认为False表示升序,设置为True则为降序
返回值:无,会改变原列表中的值
3. 字符串的文本解析方法
1. split()
语法:S. split(sep=None)
作用:将字符串S使用sep作为分隔符进行拆分,返回分隔后的字符串列表,如果不指定sep的话则采用空白字符作为分隔符
2. join()
语法:S. join(iterable)
作用:用可迭代对象中的字符串,拼接并返回中间使用S进行分割的字符串
4. 浅拷贝 和 深拷贝
1. 浅拷贝 - shallow copy
1. 什么是浅拷贝
浅拷贝是指在复制过程中,只复制一层变量,不会复制深层变量绑定的对象的复制过程
2. 语法
L. copy()
2. 深拷贝
1. 语法
import copy
L1 = copy. deepcopy(L)
5. 列表推导式 - comprehension
1. 什么是列表推导式
利用可迭代对象生成列表的表达式
使用简易的方法生成列表
2. 语法
[ 表达式 for 变量 in 可迭代对象 if 真值表达式 ]
注意:
1. if 真值表达式 是可以省略不写的
2. 表达式 是由 变量配合其他运算组合成的一个表达式值
3. 列表推导式的嵌套
语法:
[ 表达式
for 变量1 in 可迭代对象1 if 真值表达式1
for 变量2 in 可迭代对象2 if 真值表达式2
]

