计数器(表达式)的代码让我感到困惑 - 来自书"Data Science from Scratch: First Principles with Python"


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个百分位数中每一个的分数

最新更新