我有这个数据结构:
[{'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'} ]
答案 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'}]