Python中range列表元素访问及唯一值统计报错问题
报错原因
- 原
calculate函数的遍历逻辑存在基础错误:for l in events遍历得到的l本身就是events列表中存储的range对象,用非整数的range对象作为列表索引执行events[l],自然会触发list indices must be integers or slices, not range的类型报错。 - 原逻辑直接将
range对象存入集合,只会存入range实例本身,不会自动展开range包含的所有整数元素,无法实现统计唯一数字的需求。
修正方案
get_input函数逻辑无需改动,仅需要修改calculate函数的遍历与集合操作逻辑即可,修正后代码如下:
def calculate(events): unique_days = set() for event_range in events: # update方法支持接收可迭代对象,自动将range内所有整数加入集合 unique_days.update(event_range) return len(unique_days)
完整调用示例
if __name__ == "__main__": events = get_input() print("唯一元素总个数为:", calculate(events))
内容的提问来源于stack exchange,提问作者JazzMontage
相关产品推荐
相关产品推荐

