Saltar al contenido
codexivo
Menú

Intermedio

Diccionarios

Guardar valores por nombre en lugar de por posición.

Un diccionario guarda valores bajo una clave:

Abrir en el sandbox
variable persona = { "nombre": "Ana", "edad": 16 }
imprimir(persona["nombre"])
imprimir(persona.edad)  // lo mismo que persona["edad"]
  • Las claves son textos o números y van entre comillas: { nombre: "Ana" } es un error.
  • d.campo funciona con claves que son nombres válidos; para las demás, d["clave con espacios"].

Agregar y cambiar

Abrir en el sandbox
variable persona = { "nombre": "Ana", "edad": 16 }
persona.ciudad = "León"
persona.edad += 1
imprimir(persona)

Preguntar antes de leer

Leer una clave que no existe es un error. Pregunta con tiene:

Abrir en el sandbox
variable persona = { "nombre": "Ana" }
si (tiene(persona, "correo")) {
  imprimir(persona.correo)
} si_no {
  imprimir("Sin correo")
}

Recorrer

Se recorren en el orden en que se agregaron las claves:

Abrir en el sandbox
variable inventario = { "manzanas": 3, "peras": 5 }
para_cada clave, valor en inventario {
  imprimir(clave, valor)
}
imprimir(claves(inventario), valores(inventario))

Contar

Un uso típico: contar cuántas veces aparece cada cosa.

Abrir en el sandbox
variable cuenta = {}
para_cada letra en "banana" {
  si (tiene(cuenta, letra)) {
    cuenta[letra] += 1
  } si_no {
    cuenta[letra] = 1
  }
}
imprimir(cuenta)