python列表中的字典排序, 先按第一个键排序,再按第二个键排序

dl = [
{
    "viewTimes": 236,
    "topTimes": 49,
    "stepsNum": 76,
    "collTimes": 321
},
{
    "viewTimes": 236,
    "topTimes": 47,
    "stepsNum": 58,
    "collTimes": 344
},
{
    "viewTimes": 238,
    "topTimes": 53,
    "stepsNum": 11,
    "collTimes": 321
},
{
    "viewTimes": 240,
    "topTimes": 31,
    "stepsNum": 39,
    "collTimes": 344
},
{
    "viewTimes": 240,
    "topTimes": 38,
    "stepsNum": 13,
    "collTimes": 200
}]

我想对上面的列表里面的字典进行排序,先按viewTimes降序排列,再按stepsNum进行升序排列

items = sorted(dl,key=lambda x:(-x["viewTimes"],x["stepsNum"]))
print(items)

#两行代码即可,

.通过lambda表达式对列表里面的字典进行排序

dl1 = sorted(dl, key=lambda dl : dl['viewTimes'],reverse=True)
dl2 = sorted(dl, key=lambda dl : dl['stepsNum'],reverse=False)
print(dl2)

可以的话就给个满意吧,我需要c币来提问,谢谢图片说明
这是我在pycharm运行的结果,真的很需要c币

dl1 = sorted(dl, key=lambda dl: dl['viewTimes'], reverse=True)
dl2 = []
dl_tmp = []
view_times = 0
for i, tmp in enumerate(dl1):
    if tmp['viewTimes'] == view_times:
        dl_tmp.append(tmp)
    else:
        dl2 = dl2 + sorted(dl_tmp, key=lambda dl_tmp: dl_tmp['stepsNum'], reverse=False)
        view_times = tmp['viewTimes']
        dl_tmp = [tmp]
    if i == len(dl1) - 1:
        dl2 = dl2 + sorted(dl_tmp, key=lambda dl_tmp: dl_tmp['stepsNum'], reverse=False)

for temp in dl2:
    print(temp)

图片说明