如何按特定键对dict列表进行任意排序?

2024-10-01 05:06:55 发布

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

我如何根据name值按任意顺序对listdict排序?我想先是dict720p,然后是dict1080p,最后是dict360p

hosters = []

for entry in json.loads(aResult[1][0]):
    if 'file' not in entry or 'label' not in entry: continue
        sLabel = sName + ' - ' + entry['label'].encode('utf-8')
        hoster = dict()
        hoster['link'] = entry['file']
        hoster['name'] = sLabel
        hoster['resolveable'] = True
        hosters.append(hoster)

Tags: nameinjsonfor排序顺序notlabel
1条回答
网友
1楼 · 发布于 2024-10-01 05:06:55

您将需要使用自定义排序函数。这样的方法应该有用:

def sort_by_resolution(hoster):
    desired_order = ['720p', '1080p', '360p']
    if hoster['name'] in desired_order:
        return desired_order.index(hoster['name'])
    else:
        return len(desired_order)

sorted(foo, key=sort_by_resolution)
# [{'name': '720p'}, {'name': '1080p'}, {'name': '360p'}]

相关问题 更多 >