前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 多维数组的排序

python 多维数组的排序

作者头像
py3study
发布2020-01-08 17:08:06
2.9K0
发布2020-01-08 17:08:06
举报
文章被收录于专栏:python3python3python3

这几天写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] ]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档