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的值可以省略,把一个列表排序

初学python,有什么错误的地方希望能够提出来,我会第一时间纠正。

原文地址:https://www.cnblogs.com/duanming/p/11830301.html