时,可以使用内置函数sorted()
和sort()
,以及itemgetter()
函数来实现。
对列表按多个键排序:
sorted()
函数,结合lambda表达式和多个键,对列表进行排序。lambda表达式中使用元组来指定多个键的顺序和排序方式。my_list = [{'name': 'Alice', 'age': 25, 'score': 90},
{'name': 'Bob', 'age': 30, 'score': 80},
{'name': 'Charlie', 'age': 20, 'score': 95}]
sorted_list = sorted(my_list, key=lambda x: (x['name'], x['age'], x['score']))
print(sorted_list)输出:[{'name': 'Alice', 'age': 25, 'score': 90},
{'name': 'Bob', 'age': 30, 'score': 80},
{'name': 'Charlie', 'age': 20, 'score': 95}]推荐的腾讯云相关产品:无对字典按多个键排序:
sorted()
函数,结合lambda表达式和多个键,对字典进行排序。lambda表达式中使用元组来指定多个键的顺序和排序方式。my_dict = {'Alice': 25, 'Bob': 30, 'Charlie': 20}
sorted_dict = dict(sorted(my_dict.items(), key=lambda x: (x[0], x[1])))
print(sorted_dict)输出:{'Alice': 25, 'Bob': 30, 'Charlie': 20}推荐的腾讯云相关产品:无需要注意的是,以上示例中的排序方式为默认的升序排序。如果需要降序排序,可以在lambda表达式中使用-
符号来指定降序排序。
例如,对列表按多个键降序排序:
sorted_list = sorted(my_list, key=lambda x: (-x['score'], x['age'], x['name']))
输出:
[{'name': 'Charlie', 'age': 20, 'score': 95},
{'name': 'Alice', 'age': 25, 'score': 90},
{'name': 'Bob', 'age': 30, 'score': 80}]
以上是使用lambda对列表或字典按多个键排序的方法和示例。
领取专属 10元无门槛券
手把手带您无忧上云