中等
技术面试0 次浏览

在网易的音乐业务中,需要对歌曲进行排序,排序规则是先按播放量从高到低排序,如果播放量相同,则按发布时间从新到旧排序。请用 Python 实现这个排序功能。

网易测试工程师
Python音乐业务排序算法

答题要点

推荐使用 Python 的 `sorted` 函数结合自定义排序规则,采用 STAR 法则。关键要点:1. 定义歌曲数据结构,包含播放量和发布时间。2. 编写排序规则函数,使用 `lambda` 表达式定义排序的优先级。3. 使用 `sorted` 函数进行排序。示例话术:首先定义歌曲列表,每个歌曲元素是一个包含播放量和发布时间的字典。然后编写 `lambda` 函数,先按播放量降序,播放量相同时按发布时间降序。最后使用 `sorted` 函数对歌曲列表进行排序。示例代码: python songs = [{'plays': 100, 'release_date': '2023-01-01'}, {'plays': 200, 'release_date': '2023-02-01'}, {'plays': 100, 'release_date': '2023-03-01'}] sorted_songs = sorted(songs, key=lambda x: (-x['plays'], -int(x['release_date'].replace('-', ''))))