Diccionario rápido (con ejemplos)

En este tutorial, aprenderá qué es el diccionario, cómo crear un diccionario y algunas operaciones comunes en el diccionario.

En el artículo anterior de Swift Arrays, aprendimos cómo podemos almacenar múltiples valores en una variable / constante. En este artículo, vamos a discutir cómo podemos almacenar datos / valores como pares clave-valor.

¿Qué es un diccionario?

Un diccionario es simplemente un contenedor que puede contener varios datos como par clave-valor de forma desordenada.

Cada valor está asociado con una clave única y almacena datos en una lista desordenada a partir de Conjuntos, es decir, no obtiene los elementos en el mismo orden en que los definió en el diccionario.

Puede usar el diccionario en lugar de la matriz cuando necesite buscar un valor con algún identificador en la colección. Suponga que puede buscar la ciudad capital del país. En ese caso, creará un diccionario con el país clave y el valor de la ciudad capital. Ahora, obtiene la ciudad capital de la colección buscando con el país clave.

En términos simples, empareja una clave con un valor. En el ejemplo anterior, emparejamos un país con su ciudad capital.

¿Cómo declarar un diccionario en Swift?

Puede crear un diccionario vacío especificando el key:valuetipo de datos entre corchetes ().

Ejemplo 1: declaración de un diccionario vacío

 let emptyDic:(Int:String) = (:) print(emptyDic) 

Cuando ejecute el programa, la salida será:

 (:)

O

También puede definir un diccionario vacío como se muestra a continuación:

 let emptyDic:Dictionary = (:) print(emptyDic) 

En el programa anterior, hemos declarado una constante emptyDic de tipo diccionario con clave de tipo Inty valor de tipo Stringy la hemos inicializado con valores 0.

O

Dado que Swift es un lenguaje de inferencia de tipos, también puede crear un diccionario directamente sin especificar el Tipo de datos, pero debe inicializar con algunos valores para que el compilador pueda inferir su tipo como:

Ejemplo 2: declarar un diccionario con algunos valores

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic) 

Cuando ejecute el programa, la salida será:

 ("b": 2, "a": 1, "i": 9, "c": 3, "e": 5, "f": 6, "g": 7, "d": 4, " h ": 8)

En el programa anterior, hemos declarado un diccionario sin definir el tipo explícitamente pero inicializando con algunos elementos predeterminados.

El elemento está en el par clave: valor donde la clave es de tipo Stringy el valor es de Inttipo. Dado que el diccionario es una lista desordenada, print(someDic)genera los valores en un orden diferente al definido.

Ejemplo 3: creación de diccionario a partir de dos matrices

También podemos crear un diccionario usando matrices.

 let customKeys = ("Facebook", "Google", "Amazon") let customValues = ("Mark", "Larry", "Jeff") let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues)) print(newDictionary) 

Cuando ejecute el programa, la salida será:

 ("Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark")

En el programa anterior, zip(customKeys,customValues)crea una nueva secuencia de tupla con cada elemento que representa el valor de customKeys y customValues. Para obtener más información sobre cómo funciona zip, visite Swit zip.

Ahora, podemos pasar esta secuencia al Dictionary(uniqueKeysWithValues:)inicializador y crear un nuevo diccionario. Por lo tanto, print(newDictionary)genera un nuevo diccionario con elementos de dos matrices.

¿Cómo acceder a los elementos del diccionario en Swift?

Como matrices, puede acceder a los elementos de un diccionario utilizando la sintaxis de subíndice. Debe incluir la clave del valor al que desea acceder entre corchetes inmediatamente después del nombre del diccionario.

Ejemplo 4: acceder a elementos de un diccionario

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic("a")) print(someDic("h")) 

Cuando ejecute el programa, la salida será:

 Opcional (1) Opcional (8) 

También puede acceder a elementos de un diccionario mediante bucles for-in.

Ejemplo 5: acceder a elementos de un diccionario con bucle for-in

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) for (key,value) in someDic ( print("key:(key) value:(value)") ) 

Cuando ejecute el programa, la salida será:

 tecla: valor b: 2 tecla: valor a: 1 tecla: valor i: 9 tecla: valor c: 3 tecla: valor e: 5 tecla: valor f: 6 tecla: valor g: 7 

¿Cómo modificar los elementos del diccionario en Swift?

Puede agregar elementos de en el diccionario utilizando la sintaxis de subíndice. Debe incluir una nueva clave como índice de subíndice y asignar un nuevo valor del tipo de Diccionario.

Ejemplo 6: configurar elementos en un diccionario

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Japan") = "Tokyo" print(someDictionary) 

Cuando ejecute el programa, la salida será:

 ("Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu")

In the above example, we've created a new key-value pair "Japan": "Tokyo" in the given dictionary by using the subscript syntax.

You can also use subscript syntax to change the value associated with a particular key as:

Example 7: Changing elements of a dictionary

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Nepal") = "KATHMANDU" print(someDictionary) 

When you run the program, the output will be:

 ("China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU")

Some helpful built-in Dictionary functions & properties

1. isEmpty

This property determines if an dictionary is empty or not. It returns true if a dictionary does not contain any value otherwise returns false.

Example 8: How isEmpty works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.isEmpty) 

When you run the program, the output will be:

 false

2. first

This property is used to access the first element of a dictionary.

Example 9: How first works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.first) 

When you run the program, the output will be:

 Optional((key: "China", value: "Beijing"))

3. count

This property returns the total number of elements (key-value pair) in a dictionary.

Example 10: How count works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.count) 

When you run the program, the output will be:

 3

4. keys

This property returns all the keys inside the dictionary.

Example 11: How keys works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let dictKeys = Array(someDictionary.keys) print(dictKeys) 

When you run the program, the output will be:

 ("China", "India", "Nepal")

Similarly, you can use values to get all the values inside the dictionary.

5. removeValue

This function removes and returns the value specified with the key from the dictionary. Both key value pair will be removed from the dictionary.

Example 12: How removeValue() works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary.removeValue(forKey: "Nepal") print(val) print(someDictionary) 

When you run the program, the output will be:

 Optional("Kathmandu") ("India": "NewDelhi", "China": "Beijing") 

Similarly, you can also use removeAll function to empty an dictionary.

Things to Remember

1. While using subscript syntax to access elements of an dictionary in Swift, you must be sure the key lies in the index otherwise you will get a nil value. Let's see this in example:

Example 13: Key must be present

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("Japan") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key Japan. So when you try to access the value of the key "Japan", you will get a nil value.

2. Likewise, key-values are case-sensitive in Swift, so you must make sure the correct cased key/value is used. Otherwise, you will get a nil value. Let's see this in example:

Example 14: Keys are case-sensitive

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key nepal. So when you try to access the value of the key "nepal", you will get a nil value.

3. There is also a way to provide a default value if the value for a given key does not exist. Let's see this in example:

Example 12: Default value for non-existent key

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal", default:"Not Found") print(val) 

When you run the program, the output will be:

 Not Found

En el programa anterior, hemos especificado un valor No encontrado en el parámetro predeterminado al acceder al diccionario. Si el valor no existe para la clave, se devuelve el valor predeterminado; de lo contrario, se devuelve el valor.

En nuestro caso, la clave "nepal" no está presente, por lo que el programa devuelve Not Found .

Articulos interesantes...