看板 Python 關於我們 聯絡資訊
※ 引述《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
cobrasgo:感謝,我剛剛找到一個方法,是用cmp實作的 08/27 20:56
cobrasgo:A.sort(lambda x, y: cmp(x["dataB"], y["dataB"])) 08/27 20:57
cobrasgo:不過cmp似乎有performance的問題 08/27 20:57
sbrhsieh:對,指定 cmp 的效率應 <= 指定 key filter 08/27 20:58