python如何降序排列 |
您所在的位置:网站首页 › python中如何将列表降序排列出来 › python如何降序排列 |
一、前言 对Python的列表(list)有两个用于排序的方法: 一个是内建方法list.sort(),可以直接改变列表的内容: >>> list1 = [9,8,7,6,5]>>>list1.sort()>>>list1 [5, 6, 7, 8, 9] 另一个是内建函数sorted(),它的特点是不改变原列表的内容,而是根据一个可迭代对象建立一个新的列表: >>> list2 = [4,3,2,1]>>> list3 =sorted(list2)>>>list2 [4, 3, 2, 1]>>>list3 [1, 2, 3, 4] 二、基础排序 最简单的升序排序非常容易:直接调用sorted()函数就可以了,它返回一个新的列表: >>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5] 也可以使用列表本身的方法list.sort()去排序。它会改变list的内容,然后返回None作为执行的结果,以避免混淆。一般来说它没有sorted()那么方便,但是如果你不需要原来的列表的话,使用它在性能上会有轻微的提升。 >>> a = [5, 2, 3, 1, 4]>>>a.sort()>>>a [1, 2, 3, 4, 5] 另一个区别就是,list.sort()方法只能用于列表,相对的,sorted()函数则适用于所有的可迭代对象,如: >>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5] 三、key函数 从Python2.4开始,无论是list.sort()还是sorted()都增加了一个key参数,指定一个在进行比较之前作用在每个列表元素上的函数。 例如,以下就是大小写不敏感的字符串比较: >>> sorted("This is a test string from Andrew".split(), key=str.lower) ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This'] key参数对应的值,必须是这样一个函数:接受一个参数然后返回一个用来排序的键。用这种技术来排序在速度上是非常快的,因为key函数恰好被每一个输入记录调用一次。 一种常用的模式是,在对复杂对象进行排序的时候,使用这个对象的索引作为排序的键,例如: >>> student_tuples =[ ... ('john', 'A', 15), ... ('jane', 'B', 12), ... ('dave', 'B', 10), ... ]>>> sorted(student_tuples, key=lambda student: student[2]) #sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] 用对象的命名属性也是一样的效果,例如: & |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |