Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

问个排序的问题

4 views
Skip to first unread message

unread,
Jun 27, 2013, 10:53:56 AM6/27/13
to
有这样一堆数据:
0 a m x
1 a m y
2 a m z
3 a n x
4 a n y
5 a n z
..

现在希望作如下排序:
第一、二列的内容不动
第三列、第四列的内容按第四列排序
排序以后应该像这样:
0 a m x
1 a n x
2 a m y
3 a n y
4 a m z
5 a n z

我知道这个在excel里面拖拖鼠标就行。。。但是用python要怎么写。。。
谢谢。。。

--

[m [1;34m※ 来源:·水木社区 newsmth.net·[FROM: 137.132.47.*] [m

unread,
Jun 27, 2013, 11:51:10 AM6/27/13
to
好吧,用sorted(a, key=lambda a:(a[1], a[3])) 解决了
至于第一列不动的问题。。。大概可以先拆开再zip起来吧。。。

【 在 gggggdxn (龙) 的大作中提到: 】
: 有这样一堆数据:
: 0 a m x
: 1 a m y
: ...................

--

[m [1;34m※ 来源:·水木社区 newsmth.net·[FROM: 183.90.100.*] [m

千年虫

unread,
Jun 28, 2013, 2:26:02 AM6/28/13
to

a是列表吗

【 在 gggggdxn (龙) 的大作中提到: 】
: 好吧,用sorted(a, key=lambda a:(a[1], a[3])) 解决了
: 至于第一列不动的问题。。。大概可以先拆开再zip起来吧。。。

--

[m [31m※ 来源:·水木社区 http://newsmth.net·[FROM: 114.247.188.*] [m

Chengxin Cai

unread,
Jun 28, 2013, 4:34:57 AM6/28/13
to
在 2013年6月28日星期五UTC+8下午2时26分02秒,千年虫写道:
a应该是列表的列表,如下:
a = [[0, 'a', 'm', 'x'],
[1, 'a', 'm', 'y'],
[2, 'a', 'm', 'z'],
[3, 'a', 'n', 'x'],
[4, 'a', 'n', 'y'],
[5, 'a', 'n', 'z ]]

千年虫

unread,
Jun 28, 2013, 5:08:44 AM6/28/13
to

你这算发泄吗

【 在 未知 的大作中提到: 】
: 出 处: 101.229.148.11
: 1NogMjAxM8TqNtTCMjjI1dDHxtrO5VVUQys4z8LO5zLKsTI2t9YwMsPro6zHp8Tqs+bQtLXAo7oN
: Cj4gYcrHwdCx7cLwDQo+IA0KPiANCj4gDQo+IKG+INTaIGdnZ2dnZHhuICjB+ikgtcS089f31tDM
: ...................

--

[m [32m※ 来源:·水木社区 http://newsmth.net·[FROM: 114.247.188.*] [m

千年虫

unread,
Jun 28, 2013, 5:09:17 AM6/28/13
to

a如何排列

【 在 gggggdxn (龙) 的大作中提到: 】
: 好吧,用sorted(a, key=lambda a:(a[1], a[3])) 解决了
: 至于第一列不动的问题。。。大概可以先拆开再zip起来吧。。。

千年虫

unread,
Jun 28, 2013, 5:18:34 AM6/28/13
to

a = [ [5,2,4,5,6,7], ["f","b","a","d","e","c"],\
["m","m","m","n","n","n"], ["x","y","z","x","y","z"]]

b = sorted(a, key=lambda a:(a[1], a[3]))

for x in b:
print x

怎么感觉无用呀

unread,
Jun 29, 2013, 8:55:20 AM6/29/13
to
In [121]: s="""0 a m x
.....: 1 a m y
.....: 2 a m z
.....: 3 a n x
.....: 4 a n y
.....: 5 a n z"""

In [122]: a=[[i for i in j.split()] for j in s.split('\n')]

In [123]: a
Out[123]:
[['0', 'a', 'm', 'x'],
['1', 'a', 'm', 'y'],
['2', 'a', 'm', 'z'],
['3', 'a', 'n', 'x'],
['4', 'a', 'n', 'y'],
['5', 'a', 'n', 'z']]

In [124]: b = sorted(a, key=lambda a:(a[1], a[3]))

In [125]: print '\n'.join(('\t'.join(i for i in j) for j in b))
0 a m x
3 a n x
1 a m y
4 a n y
2 a m z
5 a n z

【 在 qingchong (千年虫) 的大作中提到: 】
: a = [ [5,2,4,5,6,7], ["f","b","a","d","e","c"],\
: ["m","m","m","n","n","n"], ["x","y","z","x","y","z"]]
: b = sorted(a, key=lambda a:(a[1], a[3]))
: ...................

--

[m [1;35m※ 来源:·水木社区 newsmth.net·[FROM: 137.132.41.*] [m
0 new messages