python学习3-内置数据结构1-列表

发布时间:2019-08-01 17:12:52编辑:auto阅读(1339)

    列表及常用操作

        列表是一个序列,用于顺序的存储数据

    1、定义与初始化

    lst = list() #使用list函数定义空列表

    lst = []    #使用中括号定义列表

    lst = [1,2,3]    #使用中括号定义初始值列表

    lst = list(range(1,20))    #使用list把可迭代对象转换为列表

        通常在定义列表的时候,使用中括号,在转化可迭代对象为列表是使用list函数

    2、查

    lst[0]    #通过下标来访问,当下标超出范围时,会indexeError

    lst[-1]    #负数索引从右边开始,并且从-1开始,当下标超出范围,会indexError

    lst.index(value)    #通过值来查找索引,返回查找到的第一个索引 

    lst.index(value,start,stop) #start指定从那个索引开始,end指定那个结束,并且不包含该索引,当值不存在该范围时,会ValueError,可以为负数,但是从左往右查找,凡是stop比start小总是ValueError。

    lst.count(value) #返回值在列表里面出现的次数

    index和count时间复杂度O(n)

    3、改

    lst[2] = 5 #直接使用下标操作取出元素并对其赋值,修改元素有且只有这种方法,对超出范围的索引会IndexError

    4、增

    lst.append(单个元素) #原地修改,返回结果是None,时间复杂度O(1)

    lst.insert(index,value) #在index前插入value,也是原地修改,当索引超出范围时:当下标为负数,在第0个元素前插入值;当下标为正数,则在末尾插入值。时间复杂度是O(n)

    lst.extend(可迭代对象) #把可迭代对象追加到末尾

    lst + ['a','b'] #不修改lst本身,返回一个新的list,list的连接操作

    5、删

    lst.remove(value) #原地修改,根据值删除元素,从左到右删除第一个,当不存在时,ValueError。

    lst.pop() #返回并删除最后一个元素,时间复杂度O(1)

    lst.pop(index) #返回并删除index所在位置的值,不存在的索引,IndexError。时间复杂度O(n)

    lst.clear() #清空列表

    6、其它操作

    len(lst) #查list的长度

    lst.rerverse() #反转列表 无返回值

    lst.sort() #排序 无返回值,元素能相互比较

    lst.sort(reverse=True) #逆序

    lst1 = lst #引用,复制的是地址。类似硬连接。

    lst2 = lst.copy() #对可变对象是引用传递,对不可变是值传递


关键字