列表和列表推导式的使用
list
一、列表(可变序列)
1、常用的列表对象方法
方法 | 说明 |
---|---|
lst.append(x) | 将元素x添加至列表lst尾部 |
lst.extend(L) | 将列表L中所有元素添加至列表lst尾部 |
lst.insert(index,x) | 在列表lst指定位置index处添加元素x,该位置后面所有元素后移一个位置 |
lst.remove(x) | 在列表lst中删除首次出现的指定元素,该元素之后的所有元素前移一个位置 |
lst.pop([index]) | 删除并返回列表lst中下标为index(默认为-1)的元素 |
lst.clear() | 删除列表lst中的所有元素,但保留列表对象 |
lst.index(x) | 返回列表lst中得第一个值为x的元素的下标,若不存在值为x的元素则抛出异常 |
lst.count(x) | 返回指定元素x在列表lst中出现次数 |
lst.reverse() | 对liebiaolst所有元素进行逆序 |
lst.sort(key=None,reverse=False) | 对列表lst中的元素进行排序,key用来指定排序依据,reverse决定升序(False)还是降序(True) |
lst.copy() | 返回列表lst的浅复制 |
2、append()、insert()、extend()
这个三个方法都可以向列表中添加元素
append()用于向列表尾部追加一个元素
insert()用于向列表任意指定位置插入一个元素
extend()用于将另一个列表中的所有元素追加至当前列表的尾部
3、pop()、remove()、clear()
这三个方法都用于删除列表中的元素,都是原地操作,不改变内存地址
pop()用于删除并返回指定位置(默认是最后一个)上的元素
remove()用于删除列表中第一个值与指定值相等的元素
clear()用于清空列表
del 删除列表中指定位置的元素
4、count()、index()、in
count()用于返回列表中指定元素出现的次数
index()用于返回指定元素在列表中首次出现的位置,如果不存在则抛出异常
in 测试列表中是否存在某个元素
5、sort()、reverse()
(1)原地操作,即处理过后,列表中原来的顺序全部丢失
sort()用于按照指定的规则对所有元素进行排序,默认规则是直接比较元素大小
reverse()用于将列表所有元素逆序排列
(2)sorted()、reversed()不改变原来列表顺序,建新表,内存地址改变
6、内置函数对列表的操作
max()、min()用于返回列表中所有元素的最大值和最小值
sum()用于返回数值型列表中所有元素之和
len()用于返回列表中元素个数
zip()用于将多个列表中元素重新组合为元组并返回包含这些元组的zip对象
enumerate()用于返回包含若干下标和值的迭代对象
注意:当列表增加或删除元素时,列表对象自动进行内存的扩展或收缩,从而保证元素之间没有缝隙,。Python列表的这个内存自动管理功能可以大幅度减少程序员的负担,但删除和插入非尾部元素时会涉及列表中大量元素的移动,效率较低,并且对于某些操作会造成意外的错误结果。因此,除非确实有必要,否则应尽量从列表尾部进行元素的增加和删除操作,这不仅可以大幅度提高列表的处理速度,并且总是可以保证得到正确的结果。
推导式
[表达式 for 变量 in 序列或迭代对象] 列表推导式在逻辑上相当于一个循环,只是形似更加简洁
1、使用列表推导式实现嵌套列表的平铺
2、过滤不符合条件的元素
(1)列出当前文件夹下所有Python的源文件
(2)选择所有大于0的数字组成新表
(3)字典中对成绩的各项操作
(4)找出列表中元素最大值的位置
3、在列表推导式中使用多个循环,实现多序列元素的任意组合,并且可以结合条件语句过滤特定元素
4、使用列表推导式实现矩阵转置(三种方式)
5、列表推导式可以使用函数或复杂表达式
6、列表推导式支持文件对象迭代
7、使用列表推导式生产100以内的所有素数