Now following my series of \"python newbie questions\" and based on another question.
Go to http://python.net/~goodger/projects/pyco
Probably you should not define these two functions as good and bad. You can use the first one with list or dictionaries to implement in place modifications of the corresponding objects. This method can give you headaches if you do not know how mutable objects work but given you known what you are doing it is OK in my opinion.
So you have two different methods to pass parameters providing different behaviors. And this is good, I would not change it.