Python 列表(list)

  • 一个队列,一个排列整齐的队伍
  • 列表内的个体称作元素,由若干元素组成列表
  • 元素可以是任意对象(数字,字符串,对象,列表等)
  • 列表内元素有顺,可以使用索引(索引从零开始)
  • 线性的数据结构
  • 使用[]表示
  • 列表是可变的

列表list定义 初始化

  • list()创建新的列表
  • list(iterable):将一个可迭代对象转换成列表
  • 列表不能一开始就定义大小

列表索引访问

  • 索引,称为下标
  • 正索引:从左至右,从0开始 为列表中的每一个元素编号
  • 负索引:从右至左,从-1开始
  • 正负索引不可以超界,否则引发异常IndexErrop
  • 为了理解方便,可以认为列表是从左至右排列的,左边是头部,右边是尾部,左边是上界,右边是下界
  • 列表通过索引访问:list[index] ,index就是索引,使用中括号访问

列表查询

  • index (value,[start,[stop]])
  • value:从指定区间查找列表中的元素是否存在
  • start 设置查询的起始位置
  • stop 设置查询的结束位置
  • 匹配第一个就立即返回索引
  • 匹配不到,抛出异常Value Error
  • count(value)
  • 返回列表中匹配value的次数
  • 时间复杂度
    随着列表数据规模的增大,而效率下降
  • len()
  • 返回列表的长度

列表元素修改

  • 索引访问修改
  • list[index]=value
  • 索引不要超界

列表增加、插入元素

  • append(object)-None
  • 列表尾部追加元素,返回None
  • 返回None 就意味着没有新的列表产生,就地修改
  • 时间复杂度是O(1)
  • insert(index ,object)>None
  • 在指定的索引index处插入元素object
  • 在返回None就意味着没有新的列表产生,就地修改
  • 时间复杂度O(n)
  • 索引能超上下界吗?
  • 超越上界,尾部追加
  • 超越下界,头部追加
  • extend(iteratable)
  • 将可迭代对象的元素追加进来,返回None
  • 就地修改
  • -> list
  • 连接操作,将两个列表链接起来
  • 产生新的列表,原则表不变
  • 本质上调用的是魔术方法__add__()方法
  • *-> list
  • 重复操作,将本列表元素重复n次,然后常见新的列表
  • reverse()-> None
  • 将列表元素反转,返回None
  • 就地修改
  • sort (key =None ,reverse =False)->
  • 对列表元素进行排序,就地修改,默认升序
  • reverse为True,反转,降序
  • key一个函数,指定key如何排序
  • copy()->list
  • shadow copy 返回一个新的列表

随机数

  • random 模块
  • randint(a,b)返回a,b之间的整数
  • choice 从非空序列的元素中随机挑选一个元素
  • randrange([[start,]stop[,step]]):从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
  • shuffle (list)就地打乱列表元素
  • sample (population,k)从样本空间或总体中随机取出k个不同的元素,返回一个新的列表