Python使用特定的元素对数组进行排序

2024-10-01 19:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的数据结构:

[{'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'}]

我需要排序它有在第一位的“最大”字符串'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'} ]

Tags: 字符串name元素数据结构排序type情况elements
1条回答
网友
1楼 · 发布于 2024-10-01 19:31:20

您可以使用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'}]

相关问题 更多 >

    热门问题