列表是Python的内置可变有序序列,是包含若千元素的有序连续内存空间。在形式上,列表的所有元素放在一对方括号“[” 和“]”中,相邻元素之间使用逗号分隔开。当列表增加或删除元素时,列表对象自动进行内存的扩展或收缩,从而保证元素之间没有缝隙。Python列表内存的自动管理可以大幅度减少程序员的负担,但列表的这个特点会涉及列表中大量元素的移动,效率较低,并且对于某些操作可能会导致意外的错误结果。因此,除非确实有必要,否则应尽量从列表尾部进行元素的增加与删除操作,这会大幅度提高列表处理速度。
目录
列表元素的增加
append():原地修改,在列表尾部添加元素。
List.append(5)
(python采用的是自动内存管理方式,当的对象值修改时,并不是直接修改变量的值,而是指向新的值)
extend():将一个可迭代对象的所有元素添加到该列表的尾部。不改变列表内存首地址,原地操作。
List.extend([123,5])
insert()方法:将元素添加到列表的指定位置,原地操作。
List,insert(3,5)#在下标3的位置插入5,该元素后的元素向后移动。
列表元素的删除
del():删除列表中指定位置上的元素。
del list[1]
pop()方法:删除并返回指定值(默认为最后一个),如果超出列表范围则抛出异常。
list.pop()
remove()方法:删除首次出现的指定元素,如果列表中不存在该元素则抛出异常
list.remove(5)
列表元素的访问与计数
index()方法:获取指定元素首次出现的下标 index(value,[start,[stop]])start stop用来指定搜索范围,start默认0,stop默认列表长度
List.index(5)
成员资格判断
count()方法:如果存在指定的值,则返回大于0的数;如果返回0,则表示不存在指定的值。或者使用更简洁的in关键字来判断一个值是否存在于列表中,返回True或Flase。
切片操作
切片适用于列表、元组、字符串、range对象等类型。
格式为:[start:stop:step]
start表示为切片开始的位置 stop表示切片截至位置 step表示切片的步长,默认为1.
切片不会因为下标越界抛出异常;列表的多种操作都可以通过切片来实现并且不影响列表对象在内存中的位置。
切片返回的是浅复制,所谓浅复制是指生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。
列表排序与逆序
sort()进行原地排序,没有返回值或者返回值为空。
sorted()返回一个新列表,不对原列表进行任何修改。
sorted(List)
sorted(List,reverse=True) #降序排列
reverse()进行原地逆序。
常用序列操作内置函数
len():返回列表中元素个数。
max()、min():返回列表中最大或最小元素
sum():对数值型列表元素求和。