①列表list表示方法 lst = [若干个(0,1个或多个)元素(数值 字符串 列表 对象等)] lst = list(可选可迭代对象) list可以把迭代对象一个个拿出来放列表里面 列表不能一开始定义大小 例如:l = [ ]空列表 L=list()空列表 l = [1,2]两个元素 l = [[1,2],3,[‘a’]]里面三个元素 l = [1]一个元素 l = list([1]) 这样写不报错,[1]列表是可迭代对象 l = [range(5)]一个元素 l = list(range(5))返回一个[0,1,2,3,4]列表 l = list([0,1,2])返回一个[0,1,2]列表,复合结构,[0,1,2]是可迭代对象, 这样写多余 ② 列表的索引 索引也叫下标 正索引:从左到右,从0 开始 负索引:从右到左,从-1开始 正负索引不能超界,否则引发异常IndexError 左边头部 右边尾部 左边下界,右边上界 列表通过索引访问 list[index] index就是索引编号,使用中括号访问 速度较快,不用遍历 ③ 列表查询 Index(val,[start,stop]) 语法:列表名.index(value,[start,stop]) 返回--索引编号(int) 遍历 通过值来能查索引编号,能查到,返回第一个匹配到索引编号,查不到就报错valueError 时间复杂度是O(n),随着列表数据规模的增大,而效率下降 count(value) 语法:列表名.count(value,[start,stop]), 返回--值出现次数(int)遍历 通过值来能查出现次数,全遍历,返回值出现次数,查不到不会保错 时间复杂度是O(n),随着列表数据规模的增大,而效率下降 len(列表) --列表元素的个数int 返回列表元素的个数,不管哪里减 -1 不管哪里加 +1 ④ 列表元素修改 索引访问修改 语法:list[index索引编号] = value 索引不要超界 时间复杂度O(1) O(n)--- O(1) ⑤ 列表增加 插入元素 append(一个元素) --None 就地修改 列表尾部追加元素,返回None 返回None就意味着没有新的列表产生,就地修改 时间复杂度是O(1) insert(索引编号,一个元素)--None 就地修改 在指定的索引index处插入元素 返回None就意味着没有新的列表产生+,就地修改 时间复杂度是O(n) 超越下界,头部追加 超越上界,尾部追加 头部追加 列表名.insert(0,“a”) 尾部追加 列表名.append(“a”) print(l.insert/append(0,”a”)) --None l.insert/append(0,”a”) print(l) extend(可迭代对象) --None 将可迭代对象的元素尾部追加进来,返回None,就地修改 l.extend(range(5)) l 就地修改

  • ---返回一个新的列表list 两个列表直接合并 连接操作,将两个列表连接起来 产生新的列表,原列表不变 l + list(range(5)) 返回新的列表[1,2,0,1,2,3,4,]
  • ---返回一个新的列表 重复操作,将本列表元素重复n次,返回新的列表,原列表不变 [1,2]3 [1,2,1,2,1,2] (l13).append(list(range(5)) 还是一个元素 (l1*3).extend(list(range(5))正确的写法