mirror of https://github.com/python/cpython
statistics.fmean(): speed-up code path for non-sizeable inputs. (gh-119876)
This commit is contained in:
parent
d28afd3fa0
commit
cc5cd4d93e
|
@ -505,13 +505,11 @@ def fmean(data, weights=None):
|
|||
n = len(data)
|
||||
except TypeError:
|
||||
# Handle iterators that do not define __len__().
|
||||
n = 0
|
||||
def count(iterable):
|
||||
nonlocal n
|
||||
for n, x in enumerate(iterable, start=1):
|
||||
yield x
|
||||
data = count(data)
|
||||
total = fsum(data)
|
||||
counter = count()
|
||||
total = fsum(map(itemgetter(0), zip(data, counter)))
|
||||
n = next(counter)
|
||||
else:
|
||||
total = fsum(data)
|
||||
if not n:
|
||||
raise StatisticsError('fmean requires at least one data point')
|
||||
return total / n
|
||||
|
|
Loading…
Reference in New Issue