要按照一个键的升序和另一个键的降序对字典列表进行排序,可以使用Python的sorted()
函数和lambda
表达式来实现。
假设有一个字典列表如下:
dict_list = [
{'name': 'John', 'age': 25},
{'name': 'Jane', 'age': 30},
{'name': 'Mike', 'age': 20},
{'name': 'Emily', 'age': 30},
{'name': 'David', 'age': 25}
]
要按照age
键的升序和name
键的降序进行排序,可以使用以下代码:
sorted_list = sorted(dict_list, key=lambda x: (x['age'], x['name']), reverse=[False, True])
这里,key=lambda x: (x['age'], x['name'])
指定了排序的键,首先按照age
键的升序排序,然后按照name
键的降序排序。
reverse=[False, True]
参数指定了对应键的排序顺序,False
表示升序,True
表示降序。在这个例子中,age
键是升序,name
键是降序。
最后,sorted()
函数会返回一个按照要求排序的新列表。可以输出sorted_list
来查看结果:
for item in sorted_list:
print(item)
输出结果:
{'name': 'Mike', 'age': 20}
{'name': 'David', 'age': 25}
{'name': 'John', 'age': 25}
{'name': 'Emily', 'age': 30}
{'name': 'Jane', 'age': 30}
以上代码会首先按照age
键的升序进行排序,对于相同的age
值,再按照name
键的降序进行排序。