An Elementary Introduction to the Wolfram Language
34Asociaciones
Counts produce una asociación que informa cuántas veces aparece cada elemento diferente:
In[1]:=
Click for copyable input
Out[1]=
Encuentre el valor asociado con c en la asociación:
In[2]:=
Click for copyable input
Out[2]=
Las operaciones para trabajar con listas también funcionan con las asociaciones, aunque se aplican solamente a los valores y no a las claves.
Aquí se suma 500 a cada valor de la asociación:
In[3]:=
Click for copyable input
Out[3]=
/@ aplica una función a cada uno de los valores en la asociación:
In[4]:=
Click for copyable input
Out[4]=
Total da el total de los valores:
In[5]:=
Click for copyable input
Out[5]=
Sort opera sobre los valores:
In[6]:=
Click for copyable input
Out[6]=
KeySort opera sobre las claves:
In[7]:=
Click for copyable input
Out[7]=
Las funciones Keys y Values extraen las claves y los valores en una asociación.
Obtenga la lista de las claves en la asociación:
In[8]:=
Click for copyable input
Out[8]=
Obtenga la lista de los valores en la asociación:
In[9]:=
Click for copyable input
Out[9]=
Normal convierte una asociación en una lista normal de reglas. Association produce una asociación a partir de una lista de reglas.
In[10]:=
Click for copyable input
Out[10]=
In[11]:=
Click for copyable input
Out[11]=
LetterCounts cuenta las veces que aparecen las letras en una cadena de caracteres.
In[12]:=
Click for copyable input
Out[12]=
KeyTake elige los elementos de una asociación que aparezcan en la lista de claves que se especifique. Aquí se toman los elementos cuyas claves sean letras en el alfabeto inglés (en minúsculas).
Tome solo aquellos elementos de la asociación cuyas claves aparezcan como letras del alfabeto inglés:
In[13]:=
Click for copyable input
Out[13]=
BarChart grafica los valores en una asociación. Si se especifica ChartLabelsAutomatic, se usarán las claves como etiquetas.
Haga un diagrama de barras con el número de veces que aparece cada letra; la más común es la e :
In[14]:=
Click for copyable input
Out[14]=
He aquí una forma directa de aplicar una función pura a una asociación:
Aplique una función pura a una asociación:
In[15]:=
Click for copyable input
Out[15]=
Es muy frecuente que las claves sean cadenas de caracteres, y Wolfram Language se vale de esto en una forma especial cuando se usan funciones puras: simplemente se usa #clave cuando se haga referencia a un elemento cuya clave sea "clave".
Use la notación simplificada para los elementos de la asociación cuyas claves sean cadenas de caracteres:
In[16]:=
Click for copyable input
Out[16]=
Un ejemplo más realista sería aplicar una función pura que extraiga el valor de e del conteo de las letras, y lo divida por el total. La N da el resultado en forma decimal.
In[17]:=
Click for copyable input
Out[17]=
clave1value1,clave2value2, ... una asociación
Association[reglas] convierte una lista de reglas en una asociación
assoc[clave] extrae un elemento de una asociación
Keys[assoc] lista de las claves de una asociación
Values[assoc] lista de valores en una asociación
Normal[assoc] convierte una asociación en una lista de reglas
KeySort[assoc] ordena una asociación según sus claves
KeyTake[assoc,claves] toma elementos con claves dadas
#clave ranura de función para un elemento con clave clave
Counts[lista] una asociación con los conteos de los elementos que sean diferentes
LetterCounts[cadena] una asociación con los conteos de las letras que sean diferentes
34.1Forme la lista, ordenada, del número de veces que aparece cada uno de los dígitos del 0 al 9 en 3^100. »
Salida esperada:
Out[]=
34.2Construya un diagrama de barras, con etiquetas, del número de veces que aparece cada uno de los dígitos del 0 al 9 en 2^1000. »
Salida esperada:
Out[]=
34.3Produzca un diagrama de barras, con etiquetas, del número de veces que aparece cada una de las letras iniciales en las palabras obtenidas de WordList[ ]»
Salida esperada:
Out[]=
34.4Construya una asociación que muestre las 5 letras iniciales más frecuentes en las palabras obtenidas de WordList[ ], junto con sus conteos»
Muestra de salida esperada:
Out[]=
34.5Encuentre la razón numérica del número de veces que ocurren la q y la u en el artículo de Wikipedia sobre computers»
Muestra de salida esperada:
Out[]=
34.6Encuentre las 10 palabras más frecuentes en ExampleData[{"Text", "AliceInWonderland"}]»
Salida esperada:
Out[]=
Porque asocian valores con claves. Otras denominaciones para lo mismo son: arreglos asociativos, diccionarios, hashmaps, structs, mapas clave-valor y listas indexadas simbólicamente.
¿Cómo se escribe en el teclado una asociación?
Se comienza con <| (< seguido de |), y luego se escribe -> para cada . Alternativamente, se puede usar Association[a->1, b->2].
En una asociación, ¿puede haber varios elementos con la misma clave?
No. En una asociación las claves son únicas.
Por lo general, se obtiene Missing[...]. Sin embargo, si se usa Lookup para buscar la clave, puede especificarse la respuesta que se quiere ver cuando la clave no existe.
Se usa KeyMap, o funciones tales como KeySelect y KeyDrop. AssociationMap crea una asociación mapeando una función sobre un conjunto de claves.
Se usa Merge. Se requiere dar una función que indique qué hacer cuando aparezca la misma clave en múltiples asociaciones.
¿Puede usarse [[...]] para extraer una parte de una asociación, del mismo modo que se extraen partes de una lista?
Sí, si se dice explícitamente assoc[[Key[clave]]]. Por ejemplo, assoc[[2]] extrae el segundo elemento de assoc, cualquiera que sea la clave que tenga. assoc[[clave]] es un caso especial que funciona de igual manera que assoc[clave].
¿Qué sucede en el caso de funciones puras cuando las claves en una asociación no son cadenas de caracteres?
En ese caso, no puede usarse #key; tiene que usarse explícitamente #[key].
 
Download Notebook Version
en