list 的增、删、查、改
一 增。 四种方法 : 1. insert 2. append 3.extend 4.+ 前三是列表的方法
(1) insert(index, value): 在索引index处增加vaule,参数value可以为任何类型 。
list_demo = [2, 4, 6, 8, 10]
list_demo.insert(3, [1,2,4])
// list_demo=[2, 4, 6, [1, 2, 4], 8, 10]
(2) append(value): 参数可以是任何类型。其在list的末尾处添加value。
list_demo = [2, 4, 6, 8, 10]
list_demo.append(['a','b','c'])
// list_demo=[2, 4, 6, 8, 10, ['a','b','c']]
(3) extend(value):参数必须是list类型。其作用将参数list中的值合并到原有的列表中。
list_demo = [2, 4, 6, 8, 10]
list_demo.extend(['h','e'])=[2, 4, 6, 8, 10, 'h', 'e']
(或list_demo.extend("he"))
=>list_demo=[2, 4, 6, 8, 10, 'h', 'e']
(4) +:合并原始list和参数list,得到一新list。
list_demo = [2, 4, 6, 8, 10]
list_another= ['a','b', 'c']
list_new = list_demo+list_another
// list_new=[2, 4, 6, 8, 10, 'a', 'b', 'c']
二 删。1.del 2. remove 3.pop 后两是list方法
(1) del 删除索引或切片所指的值 。
list_demo = [2, 4, 6, 8, 10]
del list_demo[3]
// list_demo=[2, 4, 6, 10]
del list_demo[1:3]
// list_demo=[2, 8, 10]
(2) remove 不按索引而按值删除,如果值不在列表中,则提示错误 。
list_demo = [2, 4, 6, 8, 10]
ist_demo.remove[8]
// list_demo=[2, 4, 6, 10]
(3) pop 它按索引值进行删除,同时返回被删除的值;如果没有指定索引,则默认删除最后的元素。
list_demo = [2, 4, 6, 8, 10]
a=list_demo.pop(3)
// a=8, list_demo=[2, 4, 6, 10]
a=list_demo.pop()
// a=10, list_demo=[2,4,6,8]
三 查。按下标读,0为第一个元素的索引,-1为最后一个元素的索引,-2为倒数第二个元素的索引,有如下规律:正索引+|负索引|= 列表长度,就可以实现正、负索引的转换了。
a = [2, 4, 6, 8, 10 ,12, 14]
a[1:-2:2](即 a[1:5:2])
// [4, 8]
对list[start:stop:step]分析
a=[2,4,6,8,10,12,14]
1.step为正的情况
(1) start和stop都不为空的情况(start或stop为负,根据上面的规律负索引转换为正索引)
例如:a[-5:-2:2]和a[2:5:2])等价 若start>=stop 则返回[ ]
(2) start为空而stop不为空的情况 (list[:stop:step]和list[0:stop:step] 等价)
例如:a[:-2:2]和a[0:5:2]等价
(3) start不为空而stop为空的情况 (list[start::step]和list[start:len(list):step等价)
例如:a[2::2]和a[2:7:2]等价
(4) start和stop都为空的情况 (列表从右到左计算,包括所有元素 list[::step]和list[0:len(list):step]等价)
例如:a[::2]和a[0:7:2]等价
2.step为负的情况
(1) start和stop都不为空的情况(start或stop为负,根据上面的规律负索引转换为正索引)
例如:a[-5:-2:-2]和a[2:5:-2])等价 若start<=stop 则返回[ ]
(2) start为空而stop不为空的情况 (list[:stop:step]和list[len(list):stop:step] 等价)
例如:a[:-6:-2]和a[7:-6:-2]等价
(3) start不为空而stop为空的情况 (list[start::step]和list[start:0:step]并不等价, ist[start::step]计算所有元素,而list[start:0:step]排除了list[0]元素)
例如:a[6::-2]和a[6:0:-2]并不等价
(4) start和stop都为空的情况 (列表从右到左计算,包括所有元素)