steam流双重排序,先按一个字段进行排序,然后将其中这个字段相同的数据按另一个字段排序
时间: 2024-05-24 08:11:41 浏览: 159
可以使用Python中的sorted()函数和lambda表达式来实现:
例如,如果我们有一个包含游戏名称、发行日期和评分的列表,我们想按照发行日期排序,然后按照评分进行排序:
games = [
{'name': 'Half-Life', 'release_date': '1998', 'rating': 9.3},
{'name': 'Portal', 'release_date': '2007', 'rating': 9.2},
{'name': 'Team Fortress 2', 'release_date': '2007', 'rating': 9.1},
{'name': 'Left 4 Dead', 'release_date': '2008', 'rating': 9.0},
{'name': 'Counter-Strike: Global Offensive', 'release_date': '2012', 'rating': 8.9},
]
# 先按照 release_date 排序,然后按照 rating 排序
sorted_games = sorted(games, key=lambda x: (x['release_date'], x['rating']), reverse=True)
# 输出结果
for game in sorted_games:
print(game['name'], game['release_date'], game['rating'])
# 结果:
# Counter-Strike: Global Offensive 2012 8.9
# Left 4 Dead 2008 9.0
# Team Fortress 2 2007 9.1
# Portal 2007 9.2
# Half-Life 1998 9.3
在lambda表达式中,我们使用一个元组来指定排序的顺序。第一个元素是按照发行日期排序,因此我们在前面添加了一个负号来确保它是降序排列。第二个元素是按照评分排序,因此我们没有添加负号,这意味着它是升序排列。
阅读全文