wangjuju123

2018-11-13   阅读量: 667

数据分析师 Python编程

列表方法5

扫码加入数据分析学习群

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

>>> x = [4, 6, 2, 1, 7, 9] 
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]

前面介绍了多个修改列表而不返回任何值的方法,在大多数情况下,这种行为都相当自然(例 如,对append来说就如此)。需要强调sort的行为也是这样的,因为这种行为给很多人都带来了 困惑。在需要排序后的列表副本并保留原始列表不变时,通常会遭遇这种困惑。为实现这种目标, 一种直观(但错误)的方式是像下面这样做:

>>> x = [4, 6, 2, 1, 7, 9] 
>>> y = x.sort() # Don't do this!
>>> print(y)
None

鉴于sort修改x且不返回任何值,终的结果是x是经过排序的,而y包含None。为实现前述 目标,正确的方式之一是先将y关联到x的副本,再对y进行排序,如下所示:

>>> x = [4, 6, 2, 1, 7, 9] 
>>> y = x.copy()
>>> y.sort()
>>> x
[4, 6, 2, 1, 7, 9]
>>> y
[1, 2, 4, 6, 7, 9]

只是将x赋给y是不可行的,因为这样x和y将指向同一个列表。为获取排序后的列表的副本, 另一种方式是使用函数sorted。

>>> x = [4, 6, 2, 1, 7, 9] 
>>> y = sorted(x)
>>> x
[4, 6, 2, 1, 7, 9]
>>> y
[1, 2, 4, 6, 7, 9]

实际上,这个函数可用于任何序列,但总是返回一个列表。

>>> sorted('Python') 
['P', 'h', 'n', 'o', 't', 'y']

如果要将元素按相反的顺序排列,可先使用sort(或sorted),再调用方法reverse,也可使用参数reverse.

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 1 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子