English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Diccionarios (Dictionary) en Swift

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

En el artículo anteriorSwift ArrayEn el artículo, aprendimos cómo declarar variables/Constantes que almacenan múltiples valores. En este artículo, discutiremos cómo almacenar datos/Los valores se almacenan como pares clave-valor.

¿Qué es un diccionario?

Un diccionario es solo un contenedor que puede almacenar múltiples datos como pares clave-valor de manera desordenada.

Cada valor está asociado con una clave única y los datos se almacenan en una lista desordenada comoColecciónEs decir, la secuencia en la que obtienes los elementos es diferente de la secuencia en la que definiste los elementos en el diccionario.

Cuando necesite buscar un valor con un identificador específico en una colección, puede usar un diccionario en lugar de un array. Supongamos que deseas buscar la capital de este país. En este caso, crearás un diccionario con pares clave-valor de país y ciudad capital. Ahora, puedes obtener el valor: ciudad capital buscando la clave: país en la colección.

En términos simples, asigna pares clave-valor. En el ejemplo anterior, asociamos un país con su capital.

¿Cómo declarar un diccionario en Swift?

Puede crear un diccionario vacío especificando key: value y tipo de datos en los corchetes [].

Ejemplo1:Declarar un diccionario vacío

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

La salida del programa al ejecutarse es:

[:]
o

También puede definir un diccionario vacío de la siguiente manera:

let emptyDic:Dictionary<Int, String> = [:]
print(emptyDic)

En el programa anterior, declaramos una constante dictionary tipo emptyDic con clave de tipo Int y valor de tipo String, y la inicializamos con un valor de 0.

o

Dado que Swift es un lenguaje de inferencia de tipos, también puede crear un diccionario sin especificar el tipo de datos, pero debe usar algunos valores para inicializarlo, de modo que el compilador pueda inferirlo:

Ejemplo2:Declarar un diccionario con ciertos valores

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

La salida del programa al ejecutarse es:

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

En el programa anterior, declaramos un diccionario, pero no definimos explícitamente el tipo, sino que inicializamos con algunos elementos por defecto.

Los elementos están ubicados en pares clave:valor, donde el tipo de clave es String y el tipo de valor es Int. Como el diccionario no es una lista ordenada, print(someDic) muestra los valores en un orden diferente al definido.

Ejemplo3:Crear un diccionario de dos arrays

También podemos usar un array para crear un diccionario.

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

La salida del programa al ejecutarse es:

["Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark"]

En el programa anterior, zip(customKeys,customValues) crea una nueva secuencia de tuplas, donde cada elemento representa valores de customKeys y customValues.

Ahora, podemos pasar esta secuencia a Dictionary(Unique eKeysWithValues: ) para establecer el valor inicial y crear un nuevo Dictionary. Por lo tanto, print(NewDictionary) muestra un nuevo Dictionary que contiene elementos de dos arrays.

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

Como array, se puede acceder a los elementos del diccionario usando la sintaxis de índice. Debe incluir el nombre del diccionario seguido de corchetes cuadrados y la clave del valor que desea acceder.

Ejemplo4:访问字典的元素

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"])

La salida del programa al ejecutarse es:

Optional(1)
Optional(8)

也可以使用for-in循环访问字典的元素。

Ejemplo5:使用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)")
}

La salida del programa al ejecutarse es:

key:b value:2
key:a value:1
key:i value:9
key:c value:3
key:e value:5
key:f value:6
key:g value:7

如何修改Swift中的字典元素?

Se puede agregar a un diccionario usando la sintaxis de índice. Debe incluir La nueva clave Como índice de subíndice, y asigna un nuevo valor al tipo Dictionary.

Ejemplo6:在字典中设置元素

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

La salida del programa al ejecutarse es:

["Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu"]

En el ejemplo anterior, creamos un nuevo par clave-valor "Japan": "Tokyo" usando la sintaxis de índice en el diccionario proporcionado.

También puede usar la sintaxis de índice para cambiar el valor asociado con una clave específica:

Ejemplo7:更改字典的元素

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

La salida del programa al ejecutarse es:

["China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU"]

Funciones y propiedades integradas del diccionario

1. isEmpty atributo - 判断字典是否为空

Este atributo determina si el diccionario está vacío. Si el diccionario no contiene ningún valor, devuelve true, de lo contrario devuelve false.

Ejemplo8¿Cómo funciona isEmpty?

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

La salida del programa al ejecutarse es:

false

2.primer atributo - Devuelve el primer elemento del diccionario

Esta propiedad se utiliza para acceder al primer elemento del diccionario.

Ejemplo9: ¿Cómo funciona el primero?

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

La salida del programa al ejecutarse es:

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

3.count - Devuelve el número total de elementos del diccionario

Esta propiedad devuelve el número total de elementos del diccionario (pares de clave-valor).

Ejemplo10: ¿Cómo funciona el recuento?

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

La salida del programa al ejecutarse es:

3

4.keys propiedad - Devuelve todas las claves del diccionario

Esta propiedad devuelve todas las claves del diccionario.

Ejemplo11: ¿Cómo funciona keys?

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

La salida del programa al ejecutarse es:

["China", "India", "Nepal"]

Del mismo modo, también puede usar  values La propiedad para obtener todos los valores del diccionario.

5. removeValue

Esta función se utiliza para eliminar y devolver el valor especificado por la clave del diccionario. Estos pares de clave-valor se eliminarán del diccionario.

Ejemplo12: ¿Cómo funciona removeValue()?

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

La salida del programa al ejecutarse es:

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

Del mismo modo, también puede usar removeAll La función vacía el diccionario.

Notas

1.Al acceder a los elementos del diccionario usando la sintaxis de subíndice en Swift, debe asegurarse de que la clave esté en el índice, de lo contrario, obtendránilEl valor. Veamos un ejemplo:

Ejemplo13: la clave debe existir

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

La salida del programa al ejecutarse es:

nil

En el programa anterior, no existe la clave Japan . Por lo tanto, cuando intenta acceder a la clave "Japan " cuando intenta acceder a la clave, obtendrá un valor nil.

2.Del mismo modo, las claves de valor en Swift distinguen entre mayúsculas y minúsculas, por lo que debe asegurarse de usar la clave mayúscula correcta/El valor. De lo contrario, obtendrá un valor nil. Veamos un ejemplo:

Ejemplo14: las claves distinguen entre mayúsculas y minúsculas

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

La salida del programa al ejecutarse es:

nil

En el programa anterior, no existe la clave "nepal". Por lo tanto, cuando intenta acceder a la clave "nepal", obtendrá un valor nil.

3.Si el valor de la clave dada no existe, también hay otro método para proporcionar un valor predeterminado. Veamos un ejemplo en el que lo veamos:

Ejemplo12: Valor predeterminado para clave inexistente

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

La salida del programa al ejecutarse es:

No encontrado

En el programa mencionado anteriormente, especificamos un valor predeterminado en el parámetro predeterminado al acceder al diccionario. Si el valor de la clave no existe, se devuelve el valor predeterminado, de lo contrario, se devuelve ese valor

En nuestro ejemplo, la clave"nepal"No existe, por lo que el programa devuelve el valor predeterminado: No encontrado.