Saltar al contenido

Crear una lista indexada

Recuerda que en las ciencias informáticas cualquier problema casi siempere puede tener diversas soluciones, por lo tanto nosotros aquí mostraremos lo más óptimo y eficiente.

Solución:

Hay que hacer algo como lo siguiente

Merge[Association /@ "white" -> 1, "white" -> 0, "blue" -> 2, 
   "green" -> 1, "green" -> 2, "yellow" -> 3, Join]
%["white"]

1, 0

Cabe señalar que Suba tiene un gran enfoque y muestra el uso adecuado de Merge en su respuesta.

Sin embargo, si puedes hacer el Association aplicado a un Listo usar un List de cualquier forma, hay enfoques que considero mucho más sencillos que mostraré a continuación.

Comencemos con la versión más desordenada:


Extract[[email protected][email protected]@#][#]&@[email protected]["white" -> 1,
      "white" -> 0,
      "blue" -> 2,
      "green" -> 1,
      "green" -> 2,
      "yellow" -> 3]//GroupBy[#,Extract[1]->Extract[2]]&


(* <|"white" -> 1, 0, "blue" -> 2, "green" -> 1, 2, 
 "yellow" -> 3|> *)

Sin embargo, la sintaxis comienza a simplificarse si hay una lista contenida dentro del Association:


Extract[1,1]@[email protected]["white" -> 1,
      "white" -> 0,
      "blue" -> 2,
      "green" -> 1,
      "green" -> 2,
      "yellow" -> 3]//GroupBy[#,Extract[1]->Extract[2]]&


(* same as above *)

Finalmente, podemos realizar la implementación más limpia de este método, si somos capaces de usar un List del Associations:


GroupBy[
      "white" -> 1,
      "white" -> 0,
      "blue" -> 2,
      "green" -> 1,
      "green" -> 2,
      "yellow" -> 3,Extract[1]->Extract[2]]


(* same as above *)

Espero que esto explique un posible conjunto de alternativas. Si ya definiste series y deseo usar eso, lamentablemente actualmente no puedo encontrar una buena solución para eso.

¡Por favor hazme saber si tienes preguntas!

Calificaciones y comentarios

Ten en cuenta comunicar este ensayo si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *