Notice the difference between @bosnia_builder 's solution and mine?
Their's creates a new list object and appends the computed values, then returns it. The orginal list is unchanged.
Mine, on the other hand, modifies the list in place, so the old list is lost.
This is not a question of which is right, or which is better, only a demonstration of both approaches. If we need to preserve the original list, then a new object must be created to contain the new list. If not, we can take the shorter route and work with the one list object. It's a situational decision, not a best practice consideration.