Python内置数据结构之list
列表是Python中最具灵活性的有序集合对象类型,与字符串不同的是,列表可以包含任何种类的对象:数字、字符串甚至其他列表。
同样,与字符串不同的,列表都是可变对象,它都支持在原处修改的操作,可以通过指定的偏移量和切片、列表方法调用、删除语句等等方法来实现
Python的列表可以完成大多数集合体数据结构的工作:
列表的主要属性有:
任意对象的有序集合
从功能上看,列表就是收集其他对象的地方,你可以把它们看做组。同时列表所包含的每一项都保持了从左到右的位置顺序(也就是说,它们是序列)。通过偏移读取数据
就像字符串一样,你可以通过列表对象的偏移对其进行索引,从而读取对象的某部分内容。由于列表的每一项都是有序的,那么你也可以执行诸如分片和合并之类的任务可变长度、异构以及任意嵌套
与字符串不同的是,列表可以实地的增长或者缩短(长度可变),并且可以包含任何类型的对象而不仅仅是包含有单个字符的字符串(异构)。因为列表能够包含其他复杂的对象,又能够支持任意的嵌套,所以可以创建列表的子列表的子列表等。属于可变序列的分类
就类型分类而言,列表支持在原处的修改(它们是可变的),也可以响应所有针对字符串序列的操作,例如,索引、分片以及合并。实际上,序列操作在列表与字符串中的工作方式相同。唯一的区别是:当应用于字符串上的合并和分片这样的操作应用于列表时,返回新的列表。然而列表是可变的,因此它们也支持字符串不支持的其他操作(例如,删除和索引赋值操作,它们都是在原处修改列表)。对象引用数组
从技术上来讲, Python列表包含了零个或多个其他对象的引用。列表也许会让你想起指针(地址)数组,从 Python的列表中读取一个项的速度与索引一个C语言数组差不多。实际上,在标准 Python解释器内部,列表就是C数组而不是链接结构。每当用到引用时, Python总是会将这个引用指向一个对象,所以程序只需处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时, Python总是会存储对象的引用,而不是对象的一个拷贝(除非明确要求保存拷贝)
列表list的定义
list(),里面可以什么都不放,也可以放可迭代对象。1
2
3
4lst = list()
lst = []
lst = [2, 6, 9, 'ab']
lst = list(range(5))
列表的索引访问
python中list的索引从0开始。绝大多数语言的下标是从0开始的
负数的索引表示从后往前数,由-1开始,-1表示最后一个元素。1
2
3
4
5
6
7
8In [6]: lst
Out[6]: [1, 2, 3]
In [7]: lst[0]
Out[7]: 1
In [8]: lst[-1]
Out[8]: 3
如果索引超出范围,将引发IndexError。
1 | In [9]: lst[-4] |
修改元素的时候,如果超出索引范围,也会引发IndexError。
数字处理函数:
round(): 四舍五取偶六入
math模块
floor():向下取整
ceil():向上取整
int():取整数部分
//:整除且向下取整
min():取最小值
max():取最大值
pow(x,y)等价于x**y
math.sqrt():开平方
进制函数,返回值是字符串
bin():二进制转换
oct():八进制转换
hex():十六进制转换
random模块
randint(a,b) 返回a,b之间的整数
choice(seq)从非空序列的元素中随机挑选一个元素
randrange([start,] stop [,sttep])从指定范围内,按指定基数递增的集合中获取一个随机数
random.shuffle(list) ->None 就地打乱列表元素
sample(population, k)从样本空间或总体中随机取出k个不同的元素,返回一个新的列表
len(list): 显示列表的元素个数
列表内建函数:
list.append(obj): 在列表末尾添加新的对象
list.count(obj): 统计某个元素在列表中出现的次数
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj): 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj): 将对象插入列表
list.pop([index=-1]): 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj): 移除列表中某个值的第一个匹配项
list.reverse(): 反向列表中元素
list.sort(cmp=None, key=None, reverse=False):对原列表进行排序
list.clear(): 清空列表
list.copy(): 复制列表