Python 列表(list)的常用方法
Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、 List(列表)、Dictionary(字典)、Set(集合);
这节主要讲列表,列表用于存储任意数目、任意类型的数据集合。列表是内置可变序列,是包含多个元素的有序连续的内存空间,列表一般用 [ ] 表示;列表的一些常用方法是与字符串相通的,用法也是一样的;
接下来查看List常用方法:
①:list()方法:可以将任何可迭代的数据转化成列表
a = 'hello world' print(list(a)) # 将字符串转化为列表 print(list(range(0,10)))
②:列表元素的增加方法:包括append(),+运算符操作,extend(),insert()
- append():原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用
a = [10,20] print('原来a的值为:',a) a.append(30) print('第一次追加数字:',a) a.append('hi') print('第二次追加字符串:',a) a.append(True) print('第三次追加布尔值:',a) a.append({'name':'lisi'}) print('第四次追加字典:',a) a.append((1,2,3)) print('第五次追加元组:',a)
- +运算符操作:不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次 复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用
a = [10,20] print('原先的a:',a) print('a原先的id:',id(a)) a = a+[10] print('a+运算后的a:',a) print('a+运算后的id:',id(a))
- extend():将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象
a = [10,20]
print('原先的a:',a)
print('a原先的id:',id(a))
a.extend([30])
print('extend添加后的a:',a)
print('extend添加后的id:',id(a))
- insert():将指定的元素插入到列表对象的任意制定位置,让插入位置后 面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用
a = [10,20,30] # insert(索引位置,插入的元素) a.insert(2,15) print(a)
③:列表元素的删除方法:包括del ,pop(),remove()
- del:删除列表指定位置的元素,功能类似insert用法,后面的元素进行移动,会影响处理速度
a = [10,20,30,40,50] # 指定元素的下标 del a[1] print(a)
- pop():删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素
a = [10,20,30,40,50] # 默认删除最后一个元素,返回指定位置元素 print('默认删除最后一个元素:',a.pop()) # 指定下标元素 print('指定删除20这个元素:',a.pop(1))
- remove():删除首次出现的指定元素,若不存在该元素抛出异常
a = [55,22,33,44,22,66,33,22] # 删除首次出现的指定元素 a.remove(22) print(a) print(a.remove(2))
④: count():统计列表元素出现的计数
a = [55,22,33,44,22,66,33,22] print(a.count(22))
⑤: len()返回字符串的长度
a = [55,22,33,44,22,66,33,22] print('列表a的长度为:',len(a))
⑤: 切片 slice 标准格式为:[起始偏移量 start:终止偏移量 end[:步长 step]]
a = [55,22,33,44,22,66,33,22] # 列表元素的切片 按照下标索引进行切分,切分规则包头不包尾,索引从0开始 print('切前三个元素:',a[0:3]) print('切最后三个元素:',a[-3:]) print('切33,44这两个元素:',a[2:4]) print('倒序输出整个列表:',a[::-1])
⑥: sort():列表排序,修改原列表,不建新列表的排序
a = [23,4,6,1,33,90,78,100,-1,-34] print('排序前的a列表为:',a) a.sort() #默认是升序排列 print('排序后的a列表为:',a) a.sort(reverse=True) #降序排列 print('降序排序后的a列表为:',a)
⑥: 列表内置函数,max() min() sum()
# 针对数值型的内置函数使用 a = [10,20,30] print('a的最小值为:',min(a)) print('a的最大值为:',max(a)) print('a的和为:',sum(a))
# 针对非数值型内置函数的使用 a = ['ban','pen','can'] print('a的最小值为:',min(a)) print('a的最大值为:',max(a)) print('a的和为:',sum(a))
ps:对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。