这几天写php程序,发现php里有一个array_multisort()函数十分好用,可以轻松对多维数组进行排序,查了查python的相关资料,视乎没有一个比较直接的函数来完成多维数组的排序

单个数组的排序很简单,直接用sort就能完成,如一下ipython代码:

In [39]: array = [4, 2, 5, 1, 3]

In [40]: array.sort()

In [41]: array

Out[41]: [1, 2, 3, 4, 5]

多维数组的排序如直接用sort讲会按第一维的数据进行排序,如:

In [42]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

In [43]: array.sort()

In [44]: array

Out[44]: [ ['a', 5], ['b', 4], ['c', 3], ['d', 1], ['e', 2] ]

如何按第二维的数据进行排序呢,我们可以用sort函数中的key形参,代码接上,如:

In [45]: array.sort(key=lambda x:x[1])#lambda x:x[1]返回list的第二个数据

In [46]: array

Out[46]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]

也可以用一个函数实现,比较直接,如:

In [55]: def sort(a):

....:     for k in xrange(len(a)):

....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

....:     a.sort()

....:     for k in xrange(len(a)):

....:         (a[k][0], a[k][1]) = (a[k][1], a[k][0])

....:

In [56]: array = [ ['b', 4], ['e', 2], ['a', 5], ['d', 1], ['c', 3] ]

In [57]: sort(array)

In [58]: array

Out[58]: [ ['d', 1], ['e', 2], ['c', 3], ['b', 4], ['a', 5] ]

python多维数组排序算法_python 多维数组的排序相关推荐

  1. PHP二维数组排序算法函数

    <?php // 二维数组排序算法函数,能够具有通用性,可以调用php内置函数. function array_sort(&$arr, $order = []){$result = [] ...

  2. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序

    *8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序.这个方法首先按行排序,然后按列排序 题目 题目描述 破题 代码 运行实例 题目 题目描述 *8.16(对二维数组排序)编写一个 ...

  3. python课程设计矩阵对角线之和_Python二维数组实现求出3*3矩阵对角线元素的和示例...

    Python二维数组实现求出3*3矩阵对角线元素的和示例 题目:求一个3*3矩阵对角线元素之和. 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出. def two_dime ...

  4. PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())

    //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order=0) {if ( ...

  5. 二维数组排序算法php,phpsort_php二维数组排序方法

    摘要 腾兴网为您分享:php二维数组排序方法,中信金通,掌上公交,云南移动,悟空识字等软件知识,以及电脑鼠标连点器,趣赚赚,顺广传媒,佳能lide220,口袋校园,放放影院,手机炒股软件,建行商城,平 ...

  6. python运维课程标准_Python运维初级课程

    随着信息时代的持续发展,IT 运维已经成为 IT 服务内涵中重要的组成部分.面对越来越复杂的业务以及日趋多样化的用户需求,不断扩展的 IT 应用需要合理的 IT 运维保障 IT 服务灵活便捷.安全稳定 ...

  7. java 二维数组排序 sort_js sort 二维数组排序的用法小结

    最近在搞js 排序的问题,因为数据库排序太耗资源,如果能转移到客户端去排序,能大大D减少服务器内存消耗.客户端的话,除了js,就是as了,可惜我as学得太烂,所以只能选择js来研究研究了...经过我的 ...

  8. python实现冒泡排序完整算法_Python实现冒泡排序算法的完整实例

    冒泡排序:顾名思义就是(较小的值)像泡泡一样往上冒,(大的值)往下沉. 实现原理:依次将相邻两个数值进行比较,较小的数值移到左边,较大的数值移到右边,依次比较完第一轮后,最大的数值应该排在最右边.然后 ...

  9. python numpy np.argsort()(返回将对数组进行排序的索引)(不懂区别?)

    from numpy\core\fromnumeric.py @array_function_dispatch(_argsort_dispatcher) def argsort(a, axis=-1, ...

最新文章

  1. 我作为一个程序员,除了写程序还会干什么?什么都不会了!
  2. Java自动装箱与拆箱及其陷阱
  3. mybatis中#和$区别
  4. 【专升本计算机】专升本计算机期末考试复习题(C卷附答案)
  5. java 线程状态_浅析Java中的线程状态
  6. 双面板文件打点器——emelFM2
  7. 寻找指定型别的父控件
  8. android 多次点击事件,Android按钮onclick事件在多次单击后激发
  9. allan方差 imu_基于RWTLS的Allan方差算法简化
  10. 什么是WINSOCK WSADATA
  11. 干货 :六招教你用Python分分钟构建好玩的深度学习应用
  12. 假如工资有段位,你是个啥?
  13. nginx proxy_pass规则
  14. 基于python的QQ第三方登陆实现工具类
  15. vue路由传参到底有几种方式
  16. [极客大挑战 2019]LoveSQL
  17. 浅谈Servlet的本质
  18. 朋友圈怎么设计测试用例,面试官听完都惊呆了
  19. 【BZOJ3925】[ZJOI2015]地震后的幻想乡(动态规划)
  20. 【THREE源码解析篇】THREE.Matrix4源码详解

热门文章

  1. 6.11 化学换肤与磨皮手术(1)
  2. 我猜你不知道音频如何降噪音,快掌握这几个方法
  3. 天池_龙珠_机器学习训练营 学习笔记3
  4. Linux查看文件句柄分配数
  5. camon详细解决过程
  6. react基础知识1
  7. 梦境西游的冠军基因:见证国产网游世界冠军之路
  8. 玩转Linux与运维岗(37)
  9. Bootstrap入门——情景文本颜色及背景颜色
  10. 8个值得推荐的手机APP,个个都是极品