''' python列表操作 列表的特点:(1)列表元素按顺序有序排序,(2)索引映射唯一一个数据,(3)列表可以存储重复数据,(4)任意数据混存,(5)根据需要动态分配和回收内存,即不论列表中多少个元素 一.列表的创建 1.创建方式:(1)使用中括号[],(2)调用内置函数list()。各个元素之间使用英文逗号分隔。 eg: (1)lst = ["sheng","shu","hao",98] (2) lst = list(["sheng","shu","hao",98]) 二.列表元素的查询操作 1.获取列表中元素的索引 方法1: 列表名.index(元素名) (1)当有相同元素的时候,只会获取到相同元素第一个元素的索引。 方法2: 列表名.index(元素名,start,stop) (2)可以在一段索引范围内查询这个元素,注意:这段范围不会包括stop结束值。 eg: print(lst.index("shu",1,3)) 不包括 3 这个结束范围。 2.获取指定索引的元素 方法1.正向索引指定(0 —— 元素个数-1): 列表名[索引] 方法2.逆向索引指定(-1 —— -元素个数): 列表名[-索引] 3.获取列表中的多个元素(切片:切出来的是一个新的列表对象) 语法格式:列表名[start : stop : step] 注意:和range函数一样是左闭右开区间,即stop取不到 可以省略stop: 列表名[start::step] 可以省略start: 列表名[:stop:step] 不包括stop,左闭右开 可以省略step: 列表名[start:stop:] 或者 列表名[start:stop] 省略step即默认步长1 可以省略start和stop: 列表名[::step] 当step步长为负数的时候: 列表名[start:stop:-step] 会倒序 4.查看一个元素是否在列表中存在 (1)in: 元素 in 列表名 判断是否存在与这个列表,返回结果为ture或者false (2)not in: 元素 not in 列表名 判断是否不存在于这个列表,返回结果为ture或者false 5.列表遍历 语法格式: for 迭代变量 in 列表名 操作 二.列表元素的增加操作 1.在末尾添加一个元素 ( append()只能添加一个元素 ), 语法格式: 列表名.append(元素) eg: a = [1,2,3,4,5,6,7,8,9] a.append(10) print(a) append(列表名)还可以将一个列表作为一个元素添加到另一个列表当中 eg: a = [1,2,3,4,5,6,7,8,9] b = [10,11,12] a.append(b) print(a) 输出为: [1, 2, 3, 4, 5, 6, 7, 8, 9, [10, 11, 12]] 2.在末尾添加一个或者多个元素元素 (要用列表的方式来添加,和append(列表名)不同) 语法格式: 列表名.extend(列表名) eg: a = [1,2,3,4,5,6,7,8,9] b = [10,11,12] a.extend(b) print(a) 输出为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 3.在指定位置上插入一个元素(只能是一个) 语法格式: 列表名.insert(索引,元素) eg: a = [1,2,3,4,5,6,7,8,9] a.insert(5,10) print(a) 输出为 : [1, 2, 3, 4, 5, 10, 6, 7, 8, 9] 4.通过切片在任意位置上添加至少一个或多个元素 语法格式: 列表名[start:stop:step] = 列表名 eg: a = [1,2,3,4,5,6,7,8,9] b = [10,11,12,13,14] a[1:5:1] = b # 将切掉的这部分“不要”,然后再切掉的这段范围添加上要加入的元素 print(a) 输出为: [1, 10, 11, 12, 13, 14, 6, 7, 8, 9] 三.列表元素的删除操作 1.从列表中只移除一个元素 语法格式: 列表名.remove(元素) #当是重复元素的时候,只移除重复的第一个元素 eg: a = [1,2,3,4,5,6,7,8,9,6] a.remove(6) print(a) 输出为: [1, 2, 3, 4, 5, 7, 8, 9, 6] 2.删除指定索引位置的元素 语法格式: 列表名.pop(索引) # 如果不指定索引,那么将删除列表中的最后一个元素 eg: a = [1,2,3,4,5,6,7,8,9] a.pop(3) print(a) a.pop() #未指定索引 print(a) 输出为 : [1, 2, 3, 5, 6, 7, 8, 9] [1, 2, 3, 5, 6, 7, 8] 3.通过切片 可以删除一个或多个元素 语法格式: 列表名[start:stop:step] = [] #将切掉的这部分用空列表替换,从而实现删除操作,注意其中的step只能是默认为1否则报错 eg: a = [1,2,3,4,5,6,7,8,9] a[2:7:] = [] print(a) 输出为: [1, 2, 8, 9] 4.清除列表中的元素 语法格式: 列表名.clear() eg: a = [1,2,3,4,5,6,7,8,9] a.clear() print(a) 输出为: [] 5.删除列表 语法格式: del 列表名 eg: a = [1,2,3,4,5,6,7,8,9] del a print(a) 输出为: NameError: name 'a' is not defined 因为已删除所以会报错 四.列表元素的改操作 1.指定索引位置修改为某个元素 语法格式: 列表名[索引] = 元素 eg: a = [1,2,3,4,5,6,7,8,9] a[3] = 10 print(a) 输出为: [1, 2, 3, 10, 5, 6, 7, 8, 9] 2.用切片的方法修改元素操作 语法格式: 列表名[start:stop:step] = [元素1,元素2,元素3,......元素n] #注意其中步长只能是默认的1否则报错 eg: a = [1,2,3,4,5,6,7,8,9] a[1:7:1] = [10,11,12,13,14,15] print(a) 输出为: [1, 10, 11, 12, 13, 14, 15, 8, 9] 五.列表元素的排序操作 1.通过调用方法sort()进行排序(不会产生新的列表对象,而是在原列表上进行升序/降序),并且默认为升序,可以指定关键字参数reverse=True,进行降序排序 升序语法格式: 列表名.sort() 或者 列表名.sort(reverse=False) eg: a = [1,6,3,7,3,34,2,2,24,6] a.sort() # 或者是 a.sort(reverse=False) print(a) 输出为: [1, 2, 2, 3, 3, 6, 6, 7, 24, 34] 降序语法格式: 列表名.sort(reverse=ture) eg: a = [1,6,3,7,3,34,2,2,24,6] a.sort(reverse=True) #注意True只能是大写T开头,否则会报错 print(a) 输出: [34, 24, 7, 6, 6, 3, 3, 2, 2, 1] 2.通过调用函数sorted()进行排序(会产生一个新的列表对象,而不是向sort()方法在原列表上进行) 升序语法格式:新的列表名 = sorted(原列表名) 或者 新的列表名 = sort(原列表名,reverse=False) eg: a = [1,6,3,7,3,34,2,2,24,6] new_a = sorted(a) 或者 new_a = sorted(a,reverse=Flase) print(a) print(new_a) 输出为: [1, 6, 3, 7, 3, 34, 2, 2, 24, 6] [1, 2, 2, 3, 3, 6, 6, 7, 24, 34] 降序语法格式: 新的列表名 = sorted(原列表名,reverse=True) eg: a = [1,6,3,7,3,34,2,2,24,6] new_a = sorted(a,reverse=True) print(a) print(new_a) 输出为: [1, 6, 3, 7, 3, 34, 2, 2, 24, 6] [34, 24, 7, 6, 6, 3, 3, 2, 2, 1] 六.列表生成式 理解 a = [i for i in range(1,11) if i%2 == 0 ] print(a) 输出: [2, 4, 6, 8, 10] '''