Python字典求和问题:如何计算当前章节后的剩余视频总时长?
修正字典计算剩余视频时长的逻辑问题
你的代码存在两个核心问题:
- 条件判断逻辑颠倒:当前代码累加的是小于等于当前章节的时长,而剩余时长需要统计当前章节及之后所有章节的时长,判断条件需要反过来
- 类型不匹配:
input()获取的是字符串类型,直接和字典里的整数key比较会引发逻辑错误,必须先转成整数
修正后的代码如下:
video_dict = { 1 : 9, # Section 1 is 9 minutes 2 : 75, 3 : 174, 4 : 100 } # 转换输入为整数,避免类型错误 current_section = int(input('What section are you currently on?')) total_time = 0 for key, value in video_dict.items(): # 只累加当前章节及之后的时长 if key >= current_section: total_time += value print(total_time)
测试验证:输入2时,会计算章节2(75)+3(174)+4(100),结果为349,符合预期。
如果想让代码更简洁,也可以用生成器表达式直接求和:
total_time = sum(value for key, value in video_dict.items() if key >= current_section)
内容的提问来源于stack exchange,提问作者Showtunes
相关产品推荐
相关产品推荐

