pytoolz / toolz

A functional standard library for Python.
http://toolz.readthedocs.org/
Other
4.66k stars 259 forks source link

Use "yield from" in merge_sorted #550

Open groutr opened 2 years ago

groutr commented 2 years ago

Convert these loops:

for item in seq:
    yield item

To the more modern and slightly more efficient

yield from seq

A quick benchmark (a is a list of 30 sorted lists of 60 random integers)

# old
In [8]: %timeit list(merge_sorted(*a))
815 µs ± 31.3 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)

# new
In [7]: %timeit list(merge_sorted(*a))
766 µs ± 26.2 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)