5

これが私の辞書です:

a = [{"id":1,"data":{"age":16,"name":a}}, 
     {"id":3,"data":{"age":35,"name":b}}, 
     {"id":2,"data":{"age":9,"name":c}}]

フィールド「年齢」で並べ替えたい。

私が使用するとlambda

sorted(a, key=lambda k: k['data']['age'])

でこれを行う方法はitemgetter

4

2 に答える 2

3

「a」、「b」、および「c」に引用符を追加することから始めることをお勧めします。そうしないと、辞書 a と文字「a」を混同することになります。

a = [{"id":1,"data":{"age":16,"name":"a"}}, 
     {"id":3,"data":{"age":35,"name":"b"}}, 
     {"id":2,"data":{"age":9,"name":"c"}}]

の場合itemgetter:

from operator import itemgetter

a = [{"id":1,"data":{"age":16,"name":"a"}}, 
     {"id":3,"data":{"age":35,"name":"b"}}, 
     {"id":2,"data":{"age":9,"name":"c"}}]

l=sorted(a, key = lambda k : itemgetter('age')(itemgetter('data')(k)) )

print (l)
于 2013-10-09T16:49:45.937 に答える