Dictionary in Julia es una colección de pares clave-valor, donde se puede acceder a cada valor en el diccionario con su clave. Estos pares clave-valor no necesitan ser del mismo tipo de datos, lo que significa que una clave de tipo String puede contener un valor de cualquier tipo como Entero, String, flotante, etc. Las claves de un diccionario nunca pueden ser iguales, cada clave debe ser única . Esto no se aplica a los valores, los valores pueden ser los mismos, según la necesidad. Los diccionarios por defecto son una colección desordenada de datos, es decir, no mantienen el orden en que se insertan las claves.
Un diccionario es más como una array, pero en un diccionario, los índices pueden ser de cualquier tipo, mientras que en una array, los índices deben ser solo números enteros.
Cada clave en un diccionario se asigna a un valor. Debido a que las claves deben ser únicas, se pueden asignar dos claves con dos valores iguales, pero no se pueden asignar dos valores diferentes con una sola clave.
Sintaxis:
Nombre_diccionario = Dict(“clave1” => valor1, “clave2” => valor2, …)
Creación de un diccionario
Se puede crear un diccionario en Julia con una palabra clave predefinida Dict(). Esta palabra clave acepta pares clave-valor como argumentos y genera un diccionario al definir su tipo de datos en función del tipo de datos de los pares clave-valor. También se puede predefinir el tipo de datos del diccionario si se conoce el tipo de datos de los valores. Esto se puede hacer definiendo el tipo de datos entre llaves después de la palabra clave ‘ Dict
‘ . Este diccionario con tipos de datos predefinidos se conoce como Typed Dictionary .
Sintaxis:
Dictionary_name = Dict{Key_datatype, Value_datatype}("Key1" => value1, "Key2" => value2, ...)
Ejemplo:
# Julia program to illustrate # the use of Dictionary # Creating an Empty dictionary Dict1 = Dict() println("Empty Dictionary = ", Dict1) # Creating an Untyped Dictionary Dict2 = Dict("a" => 1, "b" => 2, "c" => 3) println("\nUntyped Dictionary = ", Dict2) # Creating a Typed Dictionary Dict3 = Dict{String, Integer}("a" => 10, "c" => 20) println("\nTyped Dictionary = ", Dict3)
Producción:
Acceso a elementos de un diccionario
Se puede acceder a los elementos de un diccionario usando las teclas del diccionario. Estas claves son únicas en un diccionario y, por lo tanto, cada clave tiene un valor único. También se puede acceder a un par clave-valor con el uso de for-loop.
Sintaxis:
Dictionary_name[key_name] or Dictionary_name[:key_name]
Ejemplo:
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with String keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello") # Accessing dictionary values using keys println(Dict1["b"]) println(Dict1["c"]) # Creating a Dictionary with Integer keys Dict2 = Dict(1 => 10, 2 => 20, 3 => "Geeks") println(Dict2[1]) println(Dict2[3]) # Creating a Dictionary with Symbols Dict3 = Dict(:a => 1, :b => "one") println(Dict3[:b])
Salida:
Uso de get()
la función:
Julia proporciona una función predefinida para acceder a elementos de un diccionario conocida como get()
función. Esta función toma 3 argumentos: nombre del diccionario, clave y un valor predeterminado para imprimir si no se encuentra la clave.
Sintaxis:
get(Dictionary_name, Key_name, Default Value)
Ejemplo:
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) # Accessing using get() function # Passing '0' as default value println(get(Dict1, "b", 0)) # Passing String as Default value println(get(Dict1, "d", "Sorry, no such key"))
Producción:
Acceso a claves y valores desde un diccionario:
Los diccionarios en Julia permiten acceder a todas las claves y todos los valores a la vez. Esto se puede hacer con el uso de palabras clave predefinidas keys
y values
.
Sintaxis:
Keys = keys(Dictionary_name) Values = values(Dictionary_name)
Ejemplo:
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) # Accessing all the Keys # using 'keys' keyword Keys = keys(Dict1) println("Keys = ", Keys) # Accessing all the Values # using 'values' keyword Values = values(Dict1) println("Values = ", Values)
Salida:
Impresión de pares clave-valor:
todos los pares clave-valor de un diccionario se pueden imprimir a la vez, con el uso de for-loop. Esto se hace iterando sobre cada clave del diccionario y luego accediendo al valor respectivo de esa clave.
Ejemplo 1: uso de Dictionary como objeto iterable
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) # Printing key-value pair using # Dictionary as an iterable object for i in Dict1 println(i) end
Salida:
Ejemplo 2: Acceso a cada tecla una por una
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) # Printing key-value pair by # accessing each key one-by-one for i in keys(Dict1) println(i, " => ", Dict1[i]) end
Salida:
Ejemplo 3: mediante el uso de tuplas (clave, valor)
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) # Printing key-value pair by # using key and value tuples for (i, j) in Dict1 println(i, " => ", j) end
Producción:
Modificar elementos de un Diccionario
La modificación de elementos de un diccionario incluye el proceso de agregar nuevas claves, modificar valores de clave existentes y eliminar una clave. La modificación de elementos no incluye el cambio de nombre de las claves del diccionario, sin embargo, se puede realizar eliminando la clave existente y agregando otra clave con el mismo valor.
# Julia program to illustrate # the use of Dictionary # Creating a Dictionary with mixed-typed keys Dict1 = Dict("a" => 1, "b" => 2, "c" => "Hello", 4 => 10) println("Initial Dictionary: \n", Dict1) # Adding a new key Dict1["d"] = 20 println("\nUpdated Dictionary after Adding new key: \n", Dict1) # Updating existing key Dict1["c"] = "Hello Geeks" println("\nUpdated Dictionary after Updating a key: \n", Dict1) # Deleting an existing key Dict1 = delete !(Dict1, "d") println("\nUpdated Dictionary after Deleting a key: \n", Dict1)
Producción:
Métodos de diccionario
Métodos | Descripción |
---|---|
obtener() | Se utiliza para devolver el valor almacenado para la clave especificada o el valor predeterminado dado si no hay una asignación para la clave. |
¡obtener!() | Se usa para devolver el valor almacenado para la clave especificada, o si no hay una asignación para la clave presente, almacene clave => predeterminado y devuelva el valor predeterminado. |
obtener la clave() | Se utiliza para devolver la clave del argumento de coincidencia de clave si existe una en la colección; de lo contrario, devuelve el valor predeterminado. |
tipo de clave() | Se utiliza para devolver el tipo de clave de la array especificada. |
unir() | Se utiliza para construir una colección fusionada a partir de las colecciones especificadas. |
¡unir!() | Se utiliza para actualizar la colección con pares de las otras colecciones. |
pares() | Devuelve un iterador sobre pares clave=>valor para la colección especificada que asigna un conjunto de claves a un conjunto de valores. |
tipo de valor() | Se utiliza para devolver el tipo de valor de la array especificada. |