作者sbrhsieh (sbr)
看板Python
标题Re: [问题] 复杂资料结构的排序
时间Thu Aug 27 20:55:47 2009
※ 引述《cobrasgo (火体金魔龙)》之铭言:
: 请问,下面这个list
: [{"dataA": "axc", "dataB": "eee"},
: {"dataA": "ccc", "dataB": "dddd"},
: {"dataA": "333", "dataB": "aaa"}]
: 若我有时候想用dataA的value来排序,也就是这个list会变成
: [{"dataA": "333", "dataB": "aaa"},
: {"dataA": "axc", "dataB": "eee"},
: {"dataA": "ccc", "dataB": "dddd"} ]
: 因为应该是333 axc ccc是我预期的结果
: 但有时候要用dataB的value来排序
: 请问一下要怎样做?
: 谢谢
A=[{"dataA": "axc", "dataB": "eee"},
{"dataA": "ccc", "dataB": "dddd"},
{"dataA": "333", "dataB": "aaa"}]
ex:
A.sort(key=lambda x: x['dataA'])
A.sort(key=lambda x: x['dataB'])
请参阅 Python 2.5 Library Reference: 3.6.4 Mutable Sequence Types
其中关於 sort method 的说明。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.128.78
1F:推 cobrasgo:感谢,我刚刚找到一个方法,是用cmp实作的 08/27 20:56
2F:→ cobrasgo:A.sort(lambda x, y: cmp(x["dataB"], y["dataB"])) 08/27 20:57
3F:→ cobrasgo:不过cmp似乎有performance的问题 08/27 20:57
4F:→ sbrhsieh:对,指定 cmp 的效率应 <= 指定 key filter 08/27 20:58