def combine_dict(dict0, dict1, update_func=lambda a, b: b):
  """Combine two dictionaries
  
  Args:
    dict0: dict
    dict1: dict
    update_func: the function to combine two values from the same key;
      default function uses the value from dict1
      
  Returns:
    dict2: combined dict
    
  Examples:
    dict0 = {'a': [1], 'b': [2], 'c': [3]}
    dict1 = {'a': [11], 'd': [4]}
    combine_dict(dict0, dict1)
  """
  dict2 = {k: dict0[k] for k in set(dict0).difference(dict1)} # the unique part from dict0
  dict2.update({k: dict1[k] for k in set(dict1).difference(dict0)}) # the unique part from dict1
  for k in set(dict0).intersection(dict1):
    dict2[k] = update_func(dict0[k], dict1[k])
  return dict2