何を言ってるか自分でもよく分からないので結果をまずは見てください。
idというkeyでソートされているのが分かります。
結果
before... {'name': 'jonki_86', 'id': 86} {'name': 'jonki_72', 'id': 72} {'name': 'jonki_84', 'id': 84} {'name': 'jonki_49', 'id': 49} {'name': 'jonki_69', 'id': 69} {'name': 'jonki_31', 'id': 31} {'name': 'jonki_37', 'id': 37} {'name': 'jonki_94', 'id': 94} {'name': 'jonki_11', 'id': 11} {'name': 'jonki_96', 'id': 96} after... {'name': 'jonki_11', 'id': 11} {'name': 'jonki_31', 'id': 31} {'name': 'jonki_37', 'id': 37} {'name': 'jonki_49', 'id': 49} {'name': 'jonki_69', 'id': 69} {'name': 'jonki_72', 'id': 72} {'name': 'jonki_84', 'id': 84} {'name': 'jonki_86', 'id': 86} {'name': 'jonki_94', 'id': 94} {'name': 'jonki_96', 'id': 96}
つまり、辞書型の要素を持つ配列を、それぞれの辞書の要素でソートします。(まぁ上の結果になるってことですorz)
これは【Perl】 ハッシュの配列の要素でソートのPython版です。
lambdaって便利。
ソース
import random # ソート用のデータ作成 list = [] for i in range(10): rndint = random.randint(0,100) map = {"name":"jonki_"+str(rndint), "id":rndint} list.append(map) print "before..." for l in list: print l # sort by "id" list.sort(cmp=lambda x,y: cmp(x["id"], y["id"])) print "after..." for l in list: print l