From: Raymond Hettinger Date: Thu, 23 Apr 2026 03:06:56 +0000 (-0500) Subject: Speed up counting in statistics.fmean() (gh-148875) X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=fbc7676df6256071682f4179818b74ba29f162cd;p=thirdparty%2FPython%2Fcpython.git Speed up counting in statistics.fmean() (gh-148875) --- diff --git a/Lib/statistics.py b/Lib/statistics.py index e635b99f958e..32fcf2313a81 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -136,7 +136,7 @@ import sys from fractions import Fraction from decimal import Decimal -from itertools import count, groupby, repeat +from itertools import compress, count, groupby, repeat from bisect import bisect_left, bisect_right from math import hypot, sqrt, fabs, exp, erfc, tau, log, fsum, sumprod from math import isfinite, isinf, pi, cos, sin, tan, cosh, asin, atan, acos @@ -195,9 +195,9 @@ def fmean(data, weights=None): n = len(data) except TypeError: # Handle iterators that do not define __len__(). - counter = count() - total = fsum(map(itemgetter(0), zip(data, counter))) - n = next(counter) + counter = count(1) + total = fsum(compress(data, counter)) + n = next(counter) - 1 else: total = fsum(data)