每个星期五和星期六-列表

时间:2020-11-05 18:57:31

标签: python list

任务正在编写一个函数,该函数返回一周中的平均睡眠时间。不包括星期五和星期六。输入的是小时列表,从星期一开始。

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]hours[5::-6]仅在更多的星期五和星期六不起作用。

有什么主意如何从列表中选择所有星期五和星期六?

1 个答案:

答案 0 :(得分:3)

查找方式list slicing workshours[x:y:z]为您提供hours的元素,从第x个索引开始,直至(但不包括)第y个索引,并以z为步长元素。要获得星期五,您要跳过第4个索引的7个元素,因此您需要这样做

fridays = hours[4::7]
saturdays = hours[5::7]

还请注意,您必须将总和除以(len(hours) - len(fridays) - len(saturdays))才能得到正确的均值。