Python 之列表的常用方法

版权声明:支持原创,转载请说明~ https://blog.csdn.net/luoyayun361/article/details/82960133

前言

方法是与对象(列表、数、字符串等)联系紧密的函数,调用方式为 object.method(arg),方法调用和函数调用很像。这里主要列举列表中常用的几个方法。

1.append

append 用于将一个对象附加到列表末尾。
需要注意的是,append 只是修改原列表,不会返回修改过后的新列表。

>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

2.clear

clear 用于清空列表的内容。

>>> a = [1,2,3,4]
>>> a.clear()
>>> a
[]

这类似于切片中赋值语句a[:] = []

3.copy

copy 用于复制列表。
常规的复制只是将一个名称关联到另一个列表,如下:

>>> a = [1,2,3]
>>> b = a
>>> b[1] = 5
>>> a
[1, 5, 3]

这里修改了 b 列表的值,a 列表也跟着变了,这种复制方式只是相当于给同一个列表重新命名而已,如果要让a 和 b 指向不同的列表,就需要将 b 关联到 a 的副本。如下:

>>> a = [1,2,3]
>>> b = a.copy()
>>> b[1] = 6
>>> a
[1, 2, 3]

这类似于使用 a[:]或者 list(a),这两个也是复制 a

4.count

count 用于计算指定的元素在列表中出现的次数。
如下示例:

>>> a = [1,1,2,3,4,4,4,5]
>>> a.count(4)
3

5.extend

extend能够将多个值附加到列表末尾,如下示例:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

这个方法类似于拼接,注意这里没有返回值,并且 extend 会直接修改被扩展的序列,比如这里的 a,这和常规的拼接(直接用“+”号连接起来)有点不同, 常规拼接是返回一个新的列表,而原有列表并没有变化,如下示例:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
>>> a 
[1, 2, 3]

所以 extend 方法和常规拼接有不同之处。如果直接将常规拼接赋值给a,如下:
a = a + b
这样拼接的效率会比 extend 低。
还可以通过切片赋值的方式来实现同样的效果,如下:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a[len(a):] = b
>>> a
[1, 2, 3, 4, 5, 6]

虽然效果是一样的,但是这样写的代码可读性会比较差。

6.index

index 的作用是在列表中查找指定值第一次出现的索引:

>>> a = [1,1,2,3,4,3]
>>> a.index(3)
3

注意,这里一定是只返回查找值第一次出现的索引,顺序从左到右。如果列表中不存在该值,将会引发异常。

7. insert

insert 方法是用于将一个对象插入列表中。

>>> a = [1,2,3,4]
>>> a.insert(1,7)
>>> a
[1, 7, 2, 3, 4]

8.pop

方法 pop 是从列表中删除列表中最后一个元素,并将其返回。

>>> a = [1,2,3,4]
>>> a.pop()
4
>>> a.pop()
3
>>> a
[1, 2]

pop 是唯一既可以修改列表又返回一个非 None 值的列表方法

9.remove

方法 remove 用于删除第一个为指定值的元素。

>>> a = [1,2,3,4,5,2,3,2]
>>> a.remove(2)
>>> a
[1, 3, 4, 5, 2, 3, 2]

注意,这里只删除第一个指定值,从左到右顺序。remove 是就地修改但不返回值的方法之一。

10.reverse

reverse 按相反的顺序排列列表中的元素。

>>> a = [1,2,3,4]
>>> a.reverse()
>>> a
[4, 3, 2, 1]

注意,reverse 也是就地修改列表,但是不返回任何值。

11.sort

sort 用于对列表就地排序。就地排序就是说对原来的列表进行修改,使其元素按顺序排列,而不是返回排序后的列表的副本。

>>> a = [4,5,6,1,2]
>>> a.sort()
>>> a
[1, 2, 4, 5, 6]

如果仅仅需要排序后的列表副本 并且要保留原有的列表不变时,可以先将原有列表复制一份,然后再进行排序,如下:

>>> a = [4,5,6,1,2]
>>> b = a.copy()
>>> b.sort()
>>> a
[4, 5, 6, 1, 2]
>>> b
[1, 2, 4, 5, 6]

这里不能用简单的赋值,如果赋值那么 a 和b 就指向同一个列表。
为获取排序后列表的副本,另一种方式是使用函数 sorted

>>> a = [4,5,6,1,2]
>>> b = sorted(a)
>>> a
[4, 5, 6, 1, 2]
>>> b
[1, 2, 4, 5, 6]

12.高级排序

方法 sort 有接受两个可选参数 key 和 reverse。这两个参数通常是按名称来指定的,称为关键字参数。key 就是指定需要按照什么属性来进行排序,而 rerverse 是指定是否要按照相反顺序来进行排序。
如下,按照长度来进行排序:

>>> a = ['word','aa','hello','waq']
>>> a.sort(key = len)
>>> a
['aa', 'waq', 'word', 'hello']
>>> a = [3,1,4,5,2]
>>> a.sort(reverse = True)
>>> a
[5, 4, 3, 2, 1]

sorted 也接受key 和 reverse 两个参数,在很多情况下,将参数 key 设置成一个自定义函数将会很有用。

猜你喜欢

转载自blog.csdn.net/luoyayun361/article/details/82960133