如何按字母顺序对单个键上的字典排序?

时间:2011-02-19 04:28:25

标签: python facebook list sorting dictionary

我想对Facebook的Graph API返回的朋友列表进行排序。排序后的结果需要按姓名按字母顺序排列。

[
      {
         "name": "Joe Smith",
         "id": "6500000"
      },
      {
         "name": "Andrew Smith",
         "id": "82000"
      },
      {
         "name": "Dora Smith",
         "id": "97000000"
      },
      {
         "name": "Jacki Smith",
         "id": "107000"
      }
]

其他说明:我在使用Python 2.5.x的Google App Engine上运行。

3 个答案:

答案 0 :(得分:8)

sorted(flist, key=lambda friend: friend["name"])

答案 1 :(得分:3)

import operator

sorted(my_list, key=operator.itemgetter("name"))

此外,itemgetter可以使用一些参数,并返回这些项的元组,因此您可以按如下方式对多个键进行排序:

sorted(my_list, key=operator.itemgetter("name", "age", "other_thing"))

sorted函数返回一个新的排序列表。如果要对列表进行排序,请使用:

my_list.sort(key=operator.itemgetter("name"))

答案 2 :(得分:-1)

如果您的列表名为A,则可以使用以下方式对其进行排序:

A.sort(cmp = lambda x,y: cmp(x["name"],y["name"]))