list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = ['a','b','c','d','e','f']
基本操作
1.删除指定元素
del list1[2] 删除了列表内的3
支持切片:del list1[1:3]即可删除列表内的2和3
2.分片赋值
1 name = list('LiXiaolong') 2 name 3 ['L','i','X','i','a','o','l','o','n','g'] 4 name[2:] = 'Lianjie' 5 name 6 ['L','i','L','i','a','n','j','i','e']
虽然后来的LiLianjie比原来的LiXiaolong字符长度少1,但是经过第4行代码:
name[2:] = 'Lianjie'后,原来的列表长度被更改了
列表的方法
1.count
用于计算某个元素出现的次数
1 list1.count(1) 2 1
2.extend
extend方法可以在列表末尾追加另一个列表的值,即扩展了原有列表
list1.extend(list2) [1,2,3,4,5,6,7,8,9,10,'a','b','c','d','e','f']
我知道你想说.这个方法顶个和鸟用,我一个连接符+教你做人
别燥,该方法与+的区别是,该方法属于原地操作,而+会返还一个包含两个列表的副本,原列表没有改变
如果采用list1 = list1 + list2这样的方法,效率上就吃亏了
当然你也可以这样实现
list1[len(list1):] = list2
但是可读性上就远不如此方法了
3.index
用于从列表中寻找第一个匹配的值
1 list1.index(10) 2 ouput:9
p.s.:rindex方法只有字符串有,列表没有
4.insert
insert方法能在列表指定位置前插入指定元素,故需写入两个参数
list1.insert(3,11)
output:[1,2,3,11,4,5,6,7,8,9,10]
可理解成在第几个元素后插入XX
5.remove
在列表中删除第一个匹配的元素
list1.remove(1) output:[2,3,4,5,6,7,8,9,10]
注意:每次只能删除一个元素,不能批量删除
6.reverse
对列表进行反向存放,属于原地操作
list1.reverse()
output:[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
7.sort
sort方法是按固定排序对列表进行排序,但要注意,以下是此方法典型的错误使用:
list1.reverse()#先对list1进行反向排序 list2 = list1.sort() #错误的开始 list2 output:None
list1
output:[1,2,3,4,5,6,7,8,9,10]
之所以列表list2为空,是因为列表list1在调用sort方法后并未返回排好的列表list1,而是返回了一个空值None,
但是列表list1却已经进行了排序操作
所以如果你想获取一个排序后的列表,同时保留原列表,那么应该这样做:
list1.reverse() list3 = list1[:] list3.sort() list1
output:[10,9,8,7,6,5,4,3,2,1]
list3
ouput:[1,2,3,4,5,6,7,8,9,10]
list3 = list1[:] 与 list3 = list1的区别在于:前者是获得了list1的副本,后者只是让list3简单地指向了list1
另外,sort方法还提供两个关键字参数(key和reverse)实现自定义排序
key参数应当传入排序的方法函数名,reverse为一个布尔值,确定是否反向排序
a = ['abcd','abc','ab',''abcde] a.sort(key=len,reverse=False) output:['abcde','abcd','abc','ab']