python 多维数组的排序
2014-04-10 17:15
302 查看
这几天写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] ]
单个数组的排序很简单,直接用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 多维数组排序 和 两个list生成dict
- python 多维数组(array)排序
- Python 排列组合以及多维数组排序
- python基于numpy的多维数组排序
- [Python]数字在排序数组中出现的次数 解题思路
- Python将两个数组合并成一个数组,多维数组变成一维数组
- php多维数组自定义排序 uasort()
- python 多维数组的初始化生成
- PHP array_multisort—对多个数组或多维数组进行排序
- PHP多维数组排序(array_multisort)
- PHP array_multisort—对多个数组或多维数组进行排序
- python统计数组元素出现次数以及排序
- Python中如何动态生成多维数组
- yii2 多维数组指定多字段排序
- 快速掌握PHP多维数组排序方法
- PHP多维数组排序
- php array_map array_multisort 高效处理多维数组排序
- 按某个键值排序多维数组
- PHP 多维数组根据其中一个字段的值排序