code: def is_list_of_matching_dicts(list_of_dicts, expected_keys=None):
      
  
      if isinstance(list_of_dicts, list) and len(list_of_dicts) == 0:
          return False
  
      is_not_list_msg = """
  {} no es una lista. Debe ingresar una lista""".format(list_of_dicts)
      assert isinstance(list_of_dicts, list), is_not_list_msg
  
      not_all_dicts_msg = """
  No todos los elementos de {} son diccionarios. Ingrese una lista compuesta
  solo por diccionarios.""".format(list_of_dicts)
      assert all([isinstance(d, dict) for d in list_of_dicts]), not_all_dicts_msg
  
      # Si no se pasan expected_keys, se las toma del primer diccionario
      expected_keys = expected_keys or set(list_of_dicts[0].keys())
  
      elements = [set(d.keys()) == expected_keys for d in list_of_dicts]
  
      return all(elements)
docs: Comprueba que una lista esté compuesta únicamente por diccionarios,
      que comparten exactamente las mismas claves.
  
      Args:
          list_of_dicts (list): Lista de diccionarios a comparar.
          expected_keys (set): Conjunto de las claves que cada diccionario debe
              tener. Si no se incluye, se asume que son las claves del primer
              diccionario de la lista.
  
      Returns:
          bool: True si todos los diccionarios comparten sus claves.