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个不同的元素,返回一个新的列表