如何比较歌曲时长?找出播放列表中最长歌曲并打印名称
解决歌曲时长比较并找出最长歌曲的方案
核心思路:将「分:秒」格式的字符串转换为总秒数(整数),通过数值大小准确比较时长;同时要把歌曲名称与时长绑定,避免丢失对应关系。
步骤1:编写时长转换函数
拆分字符串为分钟和秒,计算总秒数:def convert_to_seconds(duration_str): minutes, seconds = map(int, duration_str.split(':')) return minutes * 60 + seconds步骤2:关联歌曲名称与时长
用元组列表存储完整播放列表,每个元组包含(歌曲名,时长字符串):# 示例播放列表 playlist = [ ('夜曲', '5:13'), ('晴天', '4:05'), ('稻香', '4:15'), ('七里香', '4:23'), ('发如雪', '4:13') ]步骤3:找出最长歌曲
使用max()函数,通过key参数指定按转换后的总秒数排序:longest_song = max(playlist, key=lambda song: convert_to_seconds(song[1])) print(f"最长的歌曲是:{longest_song[0]},时长{longest_song[1]}")简化写法(无需单独函数)
若不想定义函数,可直接在lambda中完成转换:longest_song = max(playlist, key=lambda s: int(s[1].split(':')[0])*60 + int(s[1].split(':')[1]))关键注意点
绝对不要直接比较时长字符串:比如'10:00'和'9:59',字符串比较会误判'9:59'更长(首字符'9' > '1'),但实际前者时长更久,必须转换为数值后再比较。
内容的提问来源于stack exchange,提问作者user20315313
相关产品推荐
相关产品推荐

