import copy def dict_concat(*args): """Concatinates a new dictionary without any side effects""" cursor = iter(args) d_final = copy.deepcopy(cursor.next()) for d in cursor: d_final.update(copy.deepcopy(d)) return d_final