Python - 使用特定元素排序数组

时间:2014-10-16 15:23:33

标签: python arrays sorting

我有这个数据结构:

[{'href': '/elements/folder/107', 'type': 'document', 'name': 'first document'}, {'href': /elements/folder/80', 'type': 'document', 'name': 'second document'}, {'href': '/elements/folder/127', 'type': 'document', 'name': 'third document'}]

我需要先把它排在第一位,并且#34;最好的"字符串' href'。因此,应该使用此特定元素作为参考来完成排序。 在这种情况下,desiderd输出应为:

[{'href': '/elements/folder/127', 'type': 'document', 'name': 'third document'}, {'href': '/elements/folder/107', 'type': 'document', 'name': 'first document'}, {'href': /elements/folder/80', 'type': 'document', 'name': 'second document'} ]

1 个答案:

答案 0 :(得分:1)

您可以使用sorted功能。使用lambda表达式作为key,在其中查看'href'键的值,在'/'上拆分,并将最后一个元素转换为int 。然后reverse列表,使其按降序排列。

l = [{'href': '/elements/folder/107', 'type': 'document', 'name': 'first document'},
     {'href': '/elements/folder/80', 'type': 'document', 'name': 'second document'},
     {'href': '/elements/folder/127', 'type': 'document', 'name': 'third document'}]

>>> sorted(l, key = lambda i: int(i['href'].split('/')[-1]), reverse=True)
[{'href': '/elements/folder/127', 'name': 'third document', 'type': 'document'},
 {'href': '/elements/folder/107', 'name': 'first document', 'type': 'document'},
 {'href': '/elements/folder/80', 'name': 'second document', 'type': 'document'}]