python - how to sort

  1. overview

  2. Key function (★★★★★)

  3. OPerator module functions

  4. asc and desc 升序和降序


Overview

对于python 列表,有一个方法 list.sort()  ,另外还有一个内置函数sorted()

list.sort() 是对本身排序,不会产生新的对象。而sorted 接收一个可迭代对象,返回一个新的排好序的list

Help on built-in function sorted in module builtins:

sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order. A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order
>>> help(list.sort)
Help on method_descriptor: sort(...)
L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*

list.sort() 会把原始列表修改,return None ,当你不需要原始列表的时候,这个方法会更有效率。

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

sorted()  这个方法用起来比较方便

 >>> sorted([6,3,8,12,4])
[3, 4, 6, 8, 12]
>>>

sorted() 接收可迭代对象

eg.

比如

>>> dic={4:'a',2:'b',3:'A',1:'h'}
>>> sorted(dic)
[1, 2, 3, 4]

Key function

Both list.sort() and sorted() have a key parameter to specify a function to be called on each list element
prior to making comparisons

list.sort()和sorted()都有一个关键参数来指定在每个列表元素上被调用的函数在进行比较之前。

for example:

>>> sorted("This is a test string from Andrew".split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

The value of the key parameter should be a function that takes a single argument and returns a key to use
for sorting purposes. This technique is fast because the key function is called exactly once for each input
record

key 参数的值应该是一个函数对象,这个函数对象带一个参数,返回一个key,这个key 就是排序的标准,

class Student(object):
def __init__(self,name,grade,age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name,self.grade,self.age)) ls_grade = sorted([
Student('join',90,15),
Student('alex',87,13),
Student('eleven',100,17)
],key=lambda stu:stu.grade) ls_age = sorted([
Student('join',90,15),
Student('alex',87,17),
Student('eleven',100,14)
],key=lambda stu:stu.age) print(ls_grade)
print(ls_age)

OPerator module functions



asc and desc 升序和降序

默认是升序排序

reverse 默认是false ,如果是true ,那就是降序排列

sorted 和list.sort() 的排序是稳定排序

于洋 回到顶部

python - how to sort的更多相关文章

  1. python中的sort方法

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  2. python中的sort方法使用详解

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  3. Python中的sort()

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可 ...

  4. python 中的sort 和java中的Collections.sort()函数的使用

    x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...

  5. python sorted和sort

    我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2.用built-in函数sorted进行排序(从2.4开始) ...

  6. Python中的sort()方法使用基础

    一.基本形式 sorted(iterable[, cmp[, key[, reverse]]]) iterable.sort(cmp[, key[, reverse]]) 参数解释: (1)itera ...

  7. Python中的 sort 和 sorted

    今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...

  8. Simplest Python K-Way Merging Sort|最简单的Python k路归并排序

    想做这个好长时间了,因为有一篇Dreamworks的论文<Coherent Out-of-Core Point-Based Global Illumination>提到了这个,一直没时间做 ...

  9. python 按照自然数排序遍历文件 python os.listdir sort by natural sorting

    import os import re def sorted_aphanumeric(data): convert = lambda text: int(text) if text.isdigit() ...

随机推荐

  1. 个人博客作业-Week7

    团队任务中个人感想 我们团队选的题目是爬虫, 采用用AVA平台开发了, 我原来JAVA语言不熟悉了, PM考虑这部分之后分配任务这部分感觉很多谢 团队当中的PM很清楚每个组员的力量, 所以PM跟每个组 ...

  2. 携程Apollo配置中心架构深度剖析

    转自:http://www.uml.org.cn/wfw/201808153.asp 一.介绍 Apollo(阿波罗)[参考附录]是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在 ...

  3. [转帖]中国公有云2018H1市场占有率

    IDC:阿里云中国第一 市场份额为2到9名总和   https://news.cnblogs.com/n/617838/ 1 月 21 日,市场研究机构 IDC 日前公布 2018 年上半年中国公有云 ...

  4. php 中instanceof的使用

    转载:https://www.cnblogs.com/tengjian/p/7999107.html 作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口. 第一种用法: ...

  5. QC

    IQC:Incoming Quality Control 意思是来料的质量控制  来料 IPQC:InPut Process Quality Control 过程质量控制   来料 FQC:Final ...

  6. spring学习总结(一)_Ioc基础(下)

    本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍零配置实现ioc,现在相信大家项目中也基本都是没有了xml配置文件.废话不多说.一起学习 代码示例 BookDao.java package com ...

  7. delphi dbgrid 修改、更新、删除

    https://zhidao.baidu.com/question/580946797.html DELPHI 中,使用 dbgrid显示数据.窗体上放置三个按钮,caption分别为:修改.删除.更 ...

  8. html5 画布和SVG的差别

    canvas和SVG可以在浏览器绘制图形,但是本质上是不同的.canves是绘制2d图象,SVG也是绘制2d图象. Canvas是Javascript进行绘图的,是逐像素绘图.Canvas一旦图象绘制 ...

  9. 洛谷 P1392 取数

    题面 在做这道题前,先要会他的弱化版(实际一模一样,只是愚蠢的洛谷评测级别差了一档(睿智如姬无夜)) ----------------------------------弱化版------------ ...

  10. ThinkPHP 框架出现安全隐患 ,导致网站被持续攻击一周

    导读 据 ZDNET 报道,有超过 45000 个中国网站由于使用 ThinkPHP 框架受到了攻击. 这些攻击针对的是使用 ThinkPHP 构建的网站,ThinkPHP 是一个中国的 PHP 框架 ...