如何对嵌套列表的指定元素求和以统计每部电视剧的总集数
剧集总集数统计方案
核心逻辑
不用提前定位所有'1'的位置,仅需一次遍历即可完成统计:
- 遍历剧集序列时,只要遇到非开头位置的'1',就说明上一季完结,将前一位元素的数值计入总集数
- 遍历结束后,再加上最后一季的最终集数即可
该方法时间复杂度为O(n),n为所有剧集序列的总元素数,效率远高于多次索引查找。
代码实现
def calc_total(series): total = 0 # 从第二个元素开始遍历,识别新一季的开头标记'1' for i in range(1, len(series)): if series[i] == '1': total += int(series[i-1]) # 补充累加最后一季的集数 total += int(series[-1]) return total episodes = [ ['1', '2', '3', '4', '5', '6', '7'], ['1', '2', '3', '4', '5', '1', '2', '3', '4', '5', '6'], ['1', '2', '3', '1', '2', '3', '4', '5', '6', '1', '2', '3', '4', '5', '6', '1', '2', '3', '4', '1', '2', '3'] ] # 批量统计所有剧集的总集数 res = [calc_total(s) for s in episodes] print(res)
输出结果
[7, 11, 22]
结果和预期完全匹配:第一部总集数7,第二部5+6=11,第三部3+6+6+4+3=22。
内容的提问来源于stack exchange,提问作者gojira
相关产品推荐
相关产品推荐

