任务是编写一个函数,返回一周的平均睡眠时间。不包括星期五和星期六。输入是从周一开始的小时列表
def averageSleep(hours):
fridays = hours[4::-5]
saturdays = hours[5::-6]
length = len(hours)
final = (sum(hours)-sum(fridays)-sum(saturdays)) / (length - 2)
return final
print(averageSleep([6, 7.5, 3.5, 6, 9, 10, 7, 6, 7, 4]))
我编写的函数返回:
5.875
这是正确的。不包括清单中的第9项和第10项(星期五和星期六)。然而,问题是传递更多的列表项(产生更多的星期五和星期六)会使函数返回错误的结果hours[4::-5]
和{
你知道如何从列表中选出所有的星期五和星期六吗
查找howlist slicing works
hours[x:y:z]
给出了hours
的元素,从第x
个索引开始,直到(但不包括)第y
个索引,步骤为z
个元素。要获得星期五,您需要跳过7个元素,从第4
个索引开始,因此需要这样做还要注意,您必须将总和除以
(len(hours) - len(fridays) - len(saturdays))
才能得到正确的平均值相关问题 更多 >
编程相关推荐