python——列表操作
python列表函数总结
1、list.index(value,[start,stop])
l = [1,2,3,4]
l.index(3) # 返回元素3的索引号2
查询对应值索引的函数,可以设置查找的起点和终点,查找范围是**[start,stop)**,如果不设置起点终点就把整个列表list都遍历一遍,找到对应value,返回value在列表中的索引号,如果找不到对应的value值则报ValueError,因为要把整个列表遍历一遍,所以时间复杂度是O(n)。
2、list.count(value)
l = [1,2,3,4]
l.count(3) # 返回元素3的个数1
统计列表中对应value存在的个数,要把整个列表list都遍历一遍,返回value出现的次数,找不到value则返回0次,同理,时间复杂度也是O(n)。
3、len(list)
l = [1,2,3,4]
length = len(l) # 求出l的长度,赋值给length
求一个列表的长度,返回长度数值,因为在列表创建时每增加一个元素,就会记录一次,所以无论什么时候都知道列表的长度,所以len(list)的效率很高,时间复杂度是O(1)。
4、list[index] = value
l = [1,2,3,4]
l(3) = 5 # 用5把l中索引为3的数即4换成5
用value把列表中index的值给覆盖了,因为是通过index索引,所以效率很高,无返回值,所以是对列表进行就地修改。
5、list.append(对象)
l = [1,2,3,4]
l.append(8) # 在l的尾部添加一个元素8
这个函数是在list尾部追加一个对象当作list的最后一个元素,这个对象可以是一个数,一个字符串,一个列表和元组,因为是在尾部增加,所以效率很高,时间复杂度是O(1),返回None,同样是对列表进行就地修改。
6、list.insert(index,value)
l = [1,2,3,4]
l.index(-500,'a') # 在l的头部添加一个元素'a'
在index对应值的前面插入一个对象,后面的元素全部后移,在官方文档中有一句话叫做,Insert object before index,返回None,同样是对列表进行就地修改,但是要注意的是,如果index超出了正索引,那么就变成了尾部追加,超出了负索引,就变成了头部追加,不会报错。
7、list.extend(iterable)
l = [1,2,3,4]
y = [6,6,6]
l.extend(y) # 把列表y增加到l的尾部
把一个可迭代对象加在list的尾部,注意这个函数返回的是None,所以也是就地修改。
8、list1 + list2
l = [1,2,3,4]
y = [6,6,6]
l + y # 返回一个新列表[1,2,3,4,6,6,6]
返回一个新列表,原来的list1和list2并没有改变。
9、乘号: [1] * 3 返回 [1,1,1] 、 [1,2]*3返回[1,2,1,2,1,2] 、[[1]] *3 返回[[1],[1],[1]]
[1]*3 # 得到一个新列表[1,1,1]
[1,2]*3 # 得到一个新列表[1,2,1,2,1,2]
[[1]]*3 # 得到一个新列表[[1],[1],[1]]
乘号的操作我们能够很轻易的看出来
10、list.remove(value)
l = [1,2,3,4]
l.remove(2) # 删除l中的元素2
把list中的value删除掉,没有返回值,所以是就地修改,一般是默认从左到右依次查找这个value,找到第一个后就立即删除掉这个value,结束函数的操作,如果没有找到就报valueerror,把value删除后,value后面的值还要全部向前移动,效率比较低。
11、list.pop(index)
l = [1,2,3,4]
l.pop() # 自动删除末尾元素,并返回
l.pop(1) # 删除索引为1的元素即2,并返回
index可以不给,默认从尾部删除一个值,同时和其他函数不同,虽然是就地修改但是也有返回值,如果给了index,那么则会弹出(删除)index对应的元素,如果index越界那么则报indexerror。
12、list.clear()
l = [1,2,3,4]
l.clear() # 清空l列表
清空列表,返回None,就地修改,一般不用。
13、 list.reverse()
l = [1,2,3,4]
l.reverse() # 把l反转成[4,3,2,1]
把一个列表反转,返回none,就地修改
14、list.sort([key] [,reverse = False])
l = [1,2,3,4]
l.sort() # 把l按照升序进行排序
l.sort(key = int) # 把l按照整数比大小,按升序排序
l.sort(key = str,reverse = True) # 把l按照字符串进行比大小,并按照降序排序
key和reverse的值可以省略,把一个列表排序