2.10Python下关于列表的常用方法(二)
上一篇:Python下关于列表的常用方法(一)介绍了操作列表的一些方法,下面再继续介绍一些相关方法。
pop方法
pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值:
>>> x = [3,2,1,0] >>> x.pop() 0 >>> x [3, 2, 1] >>> x.pop(2) 1 >>> x [3, 2] >>> x.append(4) >>> x.pop(1) 2 >>> x [3, 4] >>>
pop方法十分好用,而且pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。
使用pop方法可以实现一种常见的数据结构——栈。入栈的操作可以用append方法来实现。栈的规则是元素先进后出:
>>> x = [1,2,3] >>> x.append(x.pop()) >>> x [1, 2, 3]
remove方法
remove方法用于移除列表中某个值的第一个匹配项:
>>> x = ['hehe','xixi','lala','zizi'] >>> x.remove('lala') >>> x ['hehe', 'xixi', 'zizi'] >>> x.remove('zizi') >>> x ['hehe', 'xixi'] >>> x.remove('lala') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
可以看到,只有第一次出现的值可以被移除,而不存在与列表中的值,如果用remove进行操作则会报错。
需要注意的是,remove是一个没有返回值的方法,它修改了列表,但不能返回被修改元素在列表中的位置,这刚好和pop方法相反。
reverse方法
reverse方法将列表中的元素反向存放,比如:
>>> x = [1,2,3] >>> x.reverse() >>> x [3, 2, 1]
该方法改变了列表,但没有返回值。
sort方法
sort方法用于在原位置对列表元素进行排序,这意味着改变原来的列表,从而让其中的元素能按一定的顺序排列。比如:
>>> x = [4,6,2,4,8,0,9] >>> x.sort() >>> x [0, 2, 4, 4, 6, 8, 9]
sort方法排完序后,只对原列表进行修改,并不会返回新列表。所以,如果你想保留原列表,并同时获得对该列表的排序,
那么可以这样操作:
>>> x = [4,6,2,4,8,0,9] >>> y = x[:] >>> y.sort() >>> x [4, 6, 2, 4, 8, 0, 9] >>> y [0, 2, 4, 4, 6, 8, 9]
上面的做法是先用y备份x,然后再将y列表进行排序。切勿简单的把x赋值给y,因为这样做就让x和y都指向同一个列表,如:
>>> x = [4,6,2,4,8,0,9] >>> y = x >>> y.sort() >>> y [0, 2, 4, 4, 6, 8, 9] >>> x [0, 2, 4, 4, 6, 8, 9]
另外一种获取已排序的列表副本的方法是,使用sorted函数:
>>> x = [4,6,2,4,8,0,9] >>> y = sorted(x) >>> x [4, 6, 2, 4, 8, 0, 9] >>> y [0, 2, 4, 4, 6, 8, 9]
这个函数实际上可以用于任何序列,却总能返回一个列表:
>>> sorted('sort') ['o', 'r', 's', 't']
如果想把一些元素按相反的顺序排列,可以使用sort(或者sorted),然后再调用reverse方法。