from collections import Counter
grades = [83, 95, 91, 87, 70, 0, 85, 82, 100, 67, 73, 77, 0]
# Bucket grades by decile, but put 100 in with the 90s
histogram = Counter(min(grade // 10 * 10, 90) for grade in grades)
然后他使用matplotlib库创建了一个直方图。我不明白这是否是列表理解,因为他使用for grades in grades
,我也不明白这里使用min((
以下将分数四舍五入到小数点后的小数点:
grade // 10 * 10
这里使用min
是将100级与90级的计数放在一起
这不是一个列表理解,因为它缺少方括号,但它是一个生成器表达式,将生成器传递给计数器,然后计数器将计算10个百分位数中每一个的分数