\$\begingroup\$
\$\endgroup\$
I'm just hoping if there's a way to simplify this recursive code that takes 2 sorted lists and combines the two together in a sorted manner (without actually having to re-sort them).
def merge (l1,l2):
if len(l1) == 0 and len(l2) == 0:
return []
if len(l1) == 0:
return l2
if len(l2) == 0:
return l1
if l1[0] <= l2[0]:
return [l1[0]] + merge(l1[1:], l2)
if l2[0] <= l1[0]:
return [l2[0]] + merge(l1, l2[1:])
asked May 4, 2015 at 21:16
1 Answer 1
\$\begingroup\$
\$\endgroup\$
Use the built-in heapq.merge
:
heapq.merge(*iterables)
Merge multiple sorted inputs into a single sorted output (for example, merge timestamped entries from multiple log files). Returns an iterator over the sorted values.
answered May 4, 2015 at 21:21
lang-py