0

2.10Python下关于列表的常用方法(二)

Posted by 撒得一地 on 2016年1月21日 in python教程

上一篇: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方法。

标签:

上一篇:

下一篇:

相关推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

2 + 9 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.