Very quick and easy homework question. I have it running ok but I think there's a better
way to do it. A more Pythonic way.
Here's my code to recursively decrement each element of a list by 1.
l = range(30)
def recurseDecrMap(l, x = []):
if len(l) == 0:
return []
else:
x.append(l[0] -1)
recurseDecrMap(l[1:], x)
return x
So thanks for any input. I'm trying to learn to do better recursion. Having trouble getting
the knack of it.
You can use only one argument, in my opinion it is simpler:
But as @jamylak pointed out, the complexity of this algorithm is O(N^2), since
l[1:]
creates a new list with references to the rest of the items in the list.If you need efficiency, I'd recommend you using list comprehensions (Haidro's answer), but I suppose it is not a priority if you want it only for learning purposes.