You can always use undefined number of keyword arguments in your original function, like:
(In the case of keyword arguments, you have a simple dictionary instead of a list)
def update_database(tname, **columns):
for key, value in columns.items():
# do something with key-value pairs
UPDATE:
So I guess, this is what we are talking about in the comment section, am I correct?
# Create dictionaries with keys as keywords and values as argument values
kwargs0 = {'arg0': 0, 'arg1': 2, 'arg2': 5}
kwargs1 = {'arg99': 1, 'arg13': None, 'arg0': 7}
# Call the function and UNPACK the dictionaries
update_database('db_name', **kwargs0)
update_database('db_name', **kwargs1)