Buscar..


Observaciones

Algunos ejemplos en este tema pueden tener un orden diferente cuando se usan porque el orden del diccionario no está garantizado.

Declarar Diccionarios

Los diccionarios son una colección desordenada de claves y valores. Los valores se relacionan con claves únicas y deben ser del mismo tipo.

Al inicializar un Diccionario, la sintaxis completa es la siguiente:

var books : Dictionary<Int, String> = Dictionary<Int, String>()

Aunque una forma más concisa de inicializar:

var books = [Int: String]()
// or
var books: [Int: String] = [:]

Declare un diccionario con claves y valores especificándolos en una lista separada por comas. Los tipos se pueden inferir de los tipos de claves y valores.

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
//books = [2: "Book 2", 1: "Book 1"] 
var otherBooks = [3: "Book 3", 4: "Book 4"]
//otherBooks = [3: "Book 3", 4: "Book 4"]

Modificar los diccionarios

Añadir una clave y un valor a un diccionario

var books = [Int: String]()
//books = [:]
books[5] = "Book 5"
//books = [5: "Book 5"]
books.updateValue("Book 6", forKey: 5)
//[5: "Book 6"]

updateValue devuelve el valor original si existe o nulo.

let previousValue = books.updateValue("Book 7", forKey: 5)
//books = [5: "Book 7"]
//previousValue = "Book 6"

Eliminar valor y sus claves con sintaxis similar

books[5] = nil
//books [:]
books[6] = "Deleting from Dictionaries"
//books = [6: "Deleting from Dictionaries"]
let removedBook = books.removeValueForKey(6)
//books = [:]
//removedValue = "Deleting from Dictionaries"

Valores de acceso

Se puede acceder a un valor en un Dictionary usando su clave:

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
let bookName = books[1]
//bookName = "Book 1"

Los valores de un diccionario se pueden iterar mediante el uso de la propiedad de values :

for book in books.values {
    print("Book Title: \(book)")
}
//output: Book Title: Book 2
//output: Book Title: Book 1

De forma similar, las claves de un diccionario se pueden iterar mediante el uso de su propiedad keys :

for bookNumbers in books.keys {
    print("Book number: \(bookNumber)")
}
// outputs:
// Book number: 1
// Book number: 2

Para obtener todos key pares de key y value correspondientes entre sí (no obtendrá el orden correcto ya que es un Diccionario)

for (book,bookNumbers)in books{
print("\(book)  \(bookNumbers)")
}
// outputs:
// 2  Book 2
// 1  Book 1

Tenga en cuenta que un Dictionary , a diferencia de un Array , está intrínsecamente desordenado, es decir, no hay garantía sobre el pedido durante la iteración.

Si desea acceder a múltiples niveles de un Diccionario, use una sintaxis de subíndices repetida.

// Create a multilevel dictionary.
var myDictionary: [String:[Int:String]]! = ["Toys":[1:"Car",2:"Truck"],"Interests":[1:"Science",2:"Math"]]

print(myDictionary["Toys"][2]) // Outputs "Truck"
print(myDictionary["Interests"][1]) // Outputs "Science"

Cambiar el valor del diccionario usando la clave

var dict = ["name": "John", "surname": "Doe"]
// Set the element with key: 'name' to 'Jane'
dict["name"] = "Jane"
print(dict)

Obtener todas las claves en el diccionario

let myAllKeys = ["name" : "Kirit" , "surname" : "Modi"]
let allKeys = Array(myAllKeys.keys)
print(allKeys)

Fusionar dos diccionarios

extension Dictionary {
    func merge(dict: Dictionary<Key,Value>) -> Dictionary<Key,Value> {
        var mutableCopy = self
        for (key, value) in dict {
            // If both dictionaries have a value for same key, the value of the other dictionary is used.
            mutableCopy[key] = value
        }
        return mutableCopy
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow