No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Diccionarios

20/33
Recursos

Aportes 17

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Diferencias entre tuplas y diccionarios:

  • Las tuplas pueden o no tener una llave.

  • Las tuplas solo pueden contener una cantidad predefinida de valores

  • Las tuplas pueden combinar varios tipos de valores, mientras que los diccionarios tiene un solo tipo homog茅neo.

Tupla:

 let tuple: (key1: String, key2: Float, key3: Int) = (key1: "value 1", key2: 3.1415, key3: 64)

Diccionario:

 let dictionary: [String: String] = ["key 1": "value 1", "key 2": "value 2"]

https://stackoverflow.com/questions/27631137/tuple-vs-dictionary-differences```

https://stackoverflow.com/questions/27631137/tuple-vs-dictionary-differences

Resumen

Los diccionarios se forman utilizando el par de clave/valor (key/value).

C贸mo definir un diccionario vac铆o:

var namesOfIntegers = [Int: String]() // Diccionario vacio

Crear un nuevo par key/value:

namesOfIntegers[15] = "quince"

Para vaciar un diccionario utilizamos [:]:

namesOfIntegers = [:]

Mas ejemplos:

var airports: [String: String] = ["YYZ": "Toronto",
                                   "DUB": "Dublin",
                                   "PMI": "Palma de Mallorca"]

airports.count
airports.isEmpty

Existen varias formas de reescribir el valor de una clave existente

Asignando un nuevo valor a la clave:

airports["LHR"] = "London City Airport"
airports
airports["LHR"] = "London Heathrow"
airports

Utilizando el m茅todo .updateValue(). Este m茅todo devuelve el valor anterior antes de actualizarlo:

if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") {
    print("El aeropuerto tenia antiguamente el nombre de \(oldValue)")
}

Comprobar si existe una clave en el diccionario

airports

if let airportName = airports["DUB"] {
    print("El aeropuerto de DUB es: \(airportName)")
}

Como eliminar un elemento del diccionario

Hay 2 formas:

  • Asign谩ndole el valor nil:
airports["PMI"] = nil
airports
  • Utilizando el m茅todo removeValue():
if let removedAirport = airports.removeValue(forKey: "DUB") {
    print("Aeropuerto eliminado: \(removedAirport)")
}
var myFamily : [String : UInt8] = [:]
myFamily["Luis"] = 40
myFamily["Reyna"] = 37
myFamily["Rocio"] = 10
myFamily["Rodrigo"] = 3
myFamily.count
// Reto
var familyMembers: [String: Int] = ["Carolina": 34, "Aisha": 12, "Thomas": 8, "Martina": 3]

familyMembers["Frances"] = 21

familyMembers

var predestinationFamilyDict : [String: Int] = [
鈥淏aby馃懚馃徑鈥 : 0,
鈥淛ane馃懇馃徑鈥 : 20,
鈥淛hon馃馃徑鈥 : 25,
鈥淎gent Doe馃馃徑鈥 : 30,
鈥淔izzle Bomber馃馃徑鈥嶁檧锔忊 : 50
]
let nameEdad : [String: Int] = ["T": 33,
                                "R": 20,
                                "M": 30
]

if let reportEdad = nameEdad["T"]{
    print("Esta es la edad de T \(reportEdad)")
}

if let reportEdad = nameEdad["R"]{
    print("Esta es la edad de R \(reportEdad)")
}

if let reportEdad = nameEdad["M"]{
    print("Esta es la edad de M \(reportEdad)")
}


var calificaci贸n: [String:Double] = ["Juan":10.0, "Marcos":8.3, "Diana":9.0, "Daniel":3.5, "Roberto":5.7]
calificaci贸n ["Gerardo"] = 4.8

for (key, value) in calificaci贸n{ 
    if value < 6{
        print(key)
    }
}```
// Diccionarios:
// formas de inicializar diccionarios:
var nameOfIntegers = [Int:String]()
nameOfIntegers[15] = "quince"

//vaciar diccionario:
nameOfIntegers = [:]

var airports: [String: String] = ["TKY":"Tokyo", "LIM":"Lima", "NYK":"New York"]

airports.count

airports.isEmpty
// sobreescribir en un diccionario:
airports["LHR"] = "London City Airport"
airports
airports["LHR"] = "London Airport"
airports

// recuperar valor antes de borrarlo y sobrescribir al mismo tiempo:
var oldValue = airports.updateValue("Tokyo Airport", forKey: "TKY")
airports

//ELiminar aeropuertos:
airports["LHR"] = nil
airports.removeValue(forKey: "LIM")

Ejercicio 馃憤馃徎

var familyMembers: [String: UInt8] = [
    "Maria": 47,
    "Victor":53,
    "Daniela":25,
    "Pepe":6]

familyMembers.count
familyMembers["Andrea"] = 28
familyMembers
//reto
var familyDictionary: [String: Int] = ["Antonella": 32 ,"Jorge": 49 ,"Celia": 55]
familyDictionary.count
var familyDictionary = [String: Int] ()
familyDictionary["Jos茅 Miguel"] = 29
familyDictionary["Paulina"] = 27
familyDictionary["Nathalie Quetzalli"] = 8
familyDictionary["Ana Paula"] = 0

// Reto
// create a dictionary with name as key and age like value.

var familyNameDic: [String: Int] = ["Felipe": 28,
                                     "Isabel": 56,
                                     "Enrique": 57,
                                     "Nataly": 32,
                                     "Fernanda": 18
]
print("cantidad de familia: \(familyNameDic.count)")
let ageUser = familyNameDic["Felipe"] ?? 0
print(ageUser)
// declare empty Dictionary
var familyNameDicTwo: [String: Int8] = [:]

familyNameDicTwo["Felipe"] =  28
familyNameDicTwo["Isabel"] = 56
familyNameDicTwo["Enrique"] = 57
familyNameDicTwo["Nataly"] = 32
familyNameDicTwo["Fernanda"] = 18

print("cantidad de familia: \(familyNameDicTwo.count)")

En un diccionario, se accede por clave y este tendr谩 un valor鈥

No cumple las caracter铆sticas de un conjunto鈥

[k1:v1, k2:v2, 鈥

No respeta el orden. Solamente los arrays cumple la orden e indexaci贸n.
Tampoco no se puede repetir las claves y valores.

var family : [String : Int] = ["Samuel": 60, "Blanca": 59, "Diana": 35, "Jimmy": 33, "Paul": 24]
    family["Sara"] = 14
    family["Mariana"] = 7
    
    for f in family {
        print(f)
    }```