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

Dictionnaires (Dictionary) Swift

Dans ce tutoriel, vous allez comprendre ce qu'est un dictionnaire, comment le créer et certaines opérations courantes sur le dictionnaire.

Dans le précédentTableau SwiftDans cet article, nous avons appris comment utiliser les variables/Stocke plusieurs valeurs dans des constantes. Dans cet article, nous discuterons de la manière dont les données/Les valeurs sont stockées sous forme de paires clé-valeur.

Qu'est-ce qu'un dictionnaire ?

Un dictionnaire est simplement un conteneur qui peut stocker plusieurs données en tant que paires clé-valeur de manière non ordonnée.

Chaque valeur est associée à une clé unique et stockée dans une liste non ordonnée en tant queEnsembleC'est-à-dire, l'ordre dans lequel vous obtenez les éléments est différent de l'ordre dans lequel vous avez défini les éléments dans le dictionnaire.

Lorsque vous devez rechercher une valeur dans un ensemble avec un identifiant spécifique, vous pouvez utiliser un dictionnaire au lieu d'un tableau. Supposons que vous vouliez rechercher la capitale de ce pays. Dans ce cas, vous créerez un dictionnaire avec les clés pays et ville de la capitale. Maintenant, vous pouvez obtenir la valeur : capitale en cherchant la clé : pays dans l'ensemble.

En termes simples, vous associez les clés et les valeurs. Dans l'exemple ci-dessus, nous avons associé un pays à sa capitale.

Comment déclarer un dictionnaire en Swift ?

Vous pouvez créer un dictionnaire vide en spécifiant la clé : valeur du type de données dans les crochets [].

Exemple1Déclaration d'un dictionnaire vide

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

Lorsque le programme est exécuté, la sortie est :

[:]
ou

Vous pouvez également définir un dictionnaire vide de la sorte :

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

Dans le programme ci-dessus, nous avons déclaré une constante dictionary de type Dictionary avec des clés de type Int et des valeurs de type String, et l'avons initialisée avec une valeur de 0.

ou

Comme Swift est un langage de type inference, vous pouvez également créer un dictionnaire sans spécifier le type de données, mais vous devez utiliser quelques valeurs pour initialiser, afin que le compilateur puisse l'inférer en :

Exemple2Déclaration d'un dictionnaire avec certaines valeurs

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

Lorsque le programme est exécuté, la sortie est :

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

Dans le programme ci-dessus, nous avons déclaré un dictionnaire, mais sans définir explicitement le type, en utilisant quelques éléments par défaut pour l'initialiser.

Les éléments sont situés dans des paires clé:valeur, où la clé est de type String et la valeur de type Int. Comme le dictionnaire n'est pas une liste ordonnée, print(someDic) affiche les valeurs dans un ordre différent de celui de la définition.

Exemple3Création d'un dictionnaire à partir de deux tableaux

Nous pouvons également utiliser un tableau pour créer un dictionnaire.

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

Lorsque le programme est exécuté, la sortie est :

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

Dans le programme ci-dessus, zip(customKeys,customValues) crée une nouvelle séquence de tuples, chaque élément représentant des valeurs provenant de customKeys et customValues.

Maintenant, nous pouvons passer cette séquence à l'initialisation de Dictionary(Unique eKeysWithValues:) et créer un nouveau Dictionary. Par conséquent, l'output de print(NewDictionary) affiche un nouveau Dictionary contenant des éléments provenant de deux tableaux.

Comment accéder aux éléments d'un dictionnaire en Swift ?

En tant que tableau, vous pouvez accéder aux éléments du dictionnaire en utilisant la syntaxe des indices. Vous devez inclure dans les crochets du nom du dictionnaire la clé de la valeur à accéder.

Exemple4:Accéder aux éléments du dictionnaire

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

Lorsque le programme est exécuté, la sortie est :

Optional(1)
Optional(8)

Vous pouvez également utiliser for-en boucle pour accéder aux éléments du dictionnaire.

Exemple5:Utiliser for-en boucle pour accéder aux éléments du dictionnaire

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

Lorsque le programme est exécuté, la sortie est :

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

Comment modifier un élément de dictionnaire en Swift ?

Vous pouvez ajouter des éléments au dictionnaire en utilisant la syntaxe des indices. Vous devez inclure Nouvelle clé En tant qu'index de sous-script, et attribuer une nouvelle valeur au type Dictionary.

Exemple6:Définir un élément dans le dictionnaire

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

Lorsque le programme est exécuté, la sortie est :

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

Dans l'exemple ci-dessus, nous avons utilisé la syntaxe des indices pour créer un nouveau couple clé-valeur "Japan": "Tokyo" dans le dictionnaire donné .

Vous pouvez également utiliser la syntaxe des indices pour modifier la valeur associée à une clé spécifique :

Exemple7:Modifier l'élément du dictionnaire

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

Lorsque le programme est exécuté, la sortie est :

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

Fonctions et propriétés intégrées du dictionnaire

1. isEmpty propriété - Juger si le dictionnaire est vide

Cette propriété détermine si le dictionnaire est vide. Si le dictionnaire ne contient aucune valeur, il retourne true, sinon false.

Exemple8:Comment isEmpty fonctionne-t-il ?

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

Lorsque le programme est exécuté, la sortie est :

false

2.first propriété - Retourne le premier élément du dictionnaire

Cette propriété est utilisée pour accéder au premier élément du dictionnaire.

Exemple9:comment fonctionne le premier ?

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

Lorsque le programme est exécuté, la sortie est :

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

3.count - Retourne le nombre total d'éléments du dictionnaire

Cette propriété retourne le nombre total d'éléments du dictionnaire (paires clé-valeur).

Exemple10:comment fonctionne le comptage ?

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

Lorsque le programme est exécuté, la sortie est :

3

4.keys propriété - Retourne toutes les clés du dictionnaire

Cette propriété retourne toutes les clés du dictionnaire.

Exemple11:comment fonctionne keys ?

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

Lorsque le programme est exécuté, la sortie est :

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

De même, vous pouvez utiliser  values l'attribut pour obtenir toutes les valeurs du dictionnaire.

5. removeValue

Cette fonction est utilisée pour supprimer une valeur du dictionnaire en utilisant la clé spécifiée. Ces deux paires clé-valeur seront supprimées du dictionnaire.

Exemple12:comment fonctionne removeValue() ?

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

Lorsque le programme est exécuté, la sortie est :

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

De même, vous pouvez également utiliser removeAll La fonction vide le dictionnaire.

Remarques

1.Lorsque vous accédez aux éléments d'un dictionnaire en utilisant la syntaxe d'index en Swift, vous devez vous assurer que la clé est présente dans l'index, sinon vous obtiendreznilLa valeur. Voyons un exemple pour le comprendre :

Exemple13:la clé doit exister

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

Lorsque le programme est exécuté, la sortie est :

nil

Dans le programme ci-dessus, il n'existe pas de clé Japan . Par conséquent, lorsque vous essayez d'accéder à la clé "Japan ” Vous obtiendrez une valeur nil.

2.De même, les clés et les valeurs sont sensibles à la casse en Swift, donc vous devez vous assurer d'utiliser la clé en majuscules correcte/La valeur. Sinon, vous obtiendrez une valeur nil. Voyons un exemple pour le comprendre :

Exemple14:les clés sont sensibles à la casse

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

Lorsque le programme est exécuté, la sortie est :

nil

Dans le programme ci-dessus, il n'existe pas de clé "nepal". Par conséquent, lorsque vous essayez d'accéder à la clé "nepal", vous obtiendrez une valeur nil.

3.Il existe également une autre méthode pour fournir une valeur par défaut si la valeur de la clé donnée n'existe pas. Voyons cela dans un exemple :

Exemple12:Valeur par défaut de la clé inexistante

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

Lorsque le programme est exécuté, la sortie est :

Not Found

Dans le programme ci-dessus, nous avons spécifié une valeur par défaut dans les paramètres par défaut lors de l'accès au dictionnaire. Si la valeur de la clé n'existe pas, elle renvoie la valeur par défaut, sinon elle renvoie cette valeur

Dans notre exemple, la clé“nepal”Inexistant, donc le programme renvoie une valeur par défaut : Not Found.