is using of [] and {} in function params intended? When you add something to flavors/statistics inside function, on the next call when favors/statistics are not passed, previously assigned list/dict (and it's values!) will be used. Eg. check this out: http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/