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

Swift Dictionary (Dictionary)

In diesem Tutorial erfahren Sie, was ein Dictionary ist, wie man es erstellt und welche gängigen Operationen im Dictionary durchführt.

Im vorherigen ArtikelSwift-ArrayIm Artikel haben wir besprochen, wie man in Variablen/Viele Werte werden in Konstanten gespeichert. In diesem Artikel werden wir besprechen, wie man Daten/Werte werden als Schlüssel-Wert-Paare gespeichert.

Was ist ein Dictionary?

Ein Dictionary ist ein Behälter, der mehrere Daten als Schlüssel-Wert-Paare unsortiert speichern kann.

Jeder Wert ist mit einem eindeutigen Schlüssel verknüpft und speichert Daten in einer unsortierten Liste alsSammlungDas bedeutet, dass Sie die Reihenfolge der Elemente erhalten, die Sie im Dictionary definiert haben, nicht die Reihenfolge der Definition der Elemente.

Wenn Sie nach einem Wert mit einem bestimmten Identifikator in einer Sammlung suchen müssen, können Sie ein Dictionary anstelle eines Arrays verwenden. Angenommen, Sie möchten die Hauptstadt dieses Landes suchen. In diesem Fall erstellen Sie ein Dictionary mit den Schlüsseln Land und Hauptstadt der Stadt. Jetzt können Sie den Wert erhalten: Hauptstadt, indem Sie nach dem Schlüssel: Land suchen.

Kurz gesagt, Sie paaren Schlüssel mit Werten. Im obigen Beispiel paaren wir ein Land mit seiner Hauptstadt.

Wie kann man in Swift ein Dictionary erklären?

Sie können ein leeres Dictionary erstellen, indem Sie key: value-Datentypen in eckigen Klammern [] angeben.

Beispiel1:eine leere Dictionary deklarieren

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

[:]
oder

Sie können auch einen leeren Dictionary wie folgt definieren:

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

In dem obigen Programm haben wir einen Dictionary mit Int-Typen für die key und String-Typen für die value deklariert und mit dem Wert 0 initialisiert.

oder

Da Swift eine Typinferenzsprache ist, können Sie auch direkt ein Dictionary erstellen, ohne den Datentyp anzugeben, aber müssen einige Werte verwenden, damit der Compiler sie als folgt ableiten kann:

Beispiel2:eine Dictionary mit bestimmten Werten deklarieren

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

In dem obigen Programm haben wir einen Dictionary deklariert, aber nicht explizit den Typ definiert, sondern mit einigen Default-Werten initialisiert.

Die Elemente liegen im key:value-Paar vor, wobei der Typ von key String ist und der Typ von value Int. Da der Dictionary eine unsortierte Liste ist, gibt print(someDic) die Werte in einer anderen Reihenfolge aus als definiert.

Beispiel3:aus zwei Arrays ein Dictionary erstellen

Wir können auch ein Dictionary aus einem Array erstellen.

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

In dem obigen Programm erstellt zip(customKeys,customValues) eine neue Sequenz von Tuples, wobei jeder Element aus den Werten von customKeys und customValues besteht.

Jetzt können wir diese Sequenz an Dictionary(Unique eKeysWithValues:) mit dem Initialwert übergeben und einen neuen Dictionary erstellen. Daher gibt print(NewDictionary) einen neuen Dictionary aus, der Elemente aus beiden Arrays enthält.

Wie kann man in Swift auf Dictionary-Elemente zugreifen?

Als Array können Sie die Indexnotation verwenden, um auf Elemente des Dictionaries zuzugreifen. Sie müssen den Schlüssel des zu zugreifenden Wertes im eckigen Klammern des Dictionary-Namens enthalten.

Beispiel4:Zugriff auf Elemente des Dictionaries

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Optional(1)
Optional(8)

Sie können auch for-Schleifen zur Durchsuchung der Elemente des Dictionaries.

Beispiel5:Verwenden Sie for-Schleifen zur Durchsuchung der Elemente des Dictionaries

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

Wie ändere ich Elemente im Dictionary in Swift?

Elemente, die mit der Indexnotation im Dictionary hinzugefügt werden können. Sie müssen enthalten Neuer Schlüssel Als Indexindex und eine neue Wertzuweisung für den Dictionary-Typ zuweisen.

Beispiel6:Einsetzen von Elementen im Dictionary

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

Im obigen Beispiel haben wir die Indexnotation verwendet, um im gegebenen Dictionary das neue Schlüssel-Wert-Paar "Japan": "Tokyo" zu erstellen.

Sie können auch die Indexnotation verwenden, um den Wert, der mit einem bestimmten Schlüssel verknüpft ist, zu ändern:

Beispiel7:Ändern Sie das Element des Dictionaries

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

Eingebauten Funktionen und Eigenschaften des Dictionaries

1. isEmpty Eigenschaft - Überprüfen Sie, ob das Dictionary leer ist

Diese Eigenschaft bestimmt, ob das Dictionary leer ist. Wenn das Dictionary keine Werte enthält, gibt es true zurück, sonst false.

Beispiel8:Wie funktioniert isEmpty?

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

false

2.first Eigenschaft - Ruft das erste Element des Dictionaries zurück

Diese Eigenschaft wird verwendet, um auf das erste Element des Dictionaries zuzugreifen.

Beispiel9:Wie funktioniert das Erste?

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Optional((key: „China“, value: „Beijing“))

3.count - Ruft die Gesamtzahl der Dictionary-Elemente zurück

Diese Eigenschaft gibt die Gesamtzahl der Elemente im Dictionary zurück (Schlüssel-Wert-Paare).

Beispiel10:Wie funktioniert die Zählung?

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

3

4.keys Eigenschaft - Ruft alle Schlüssel im Dictionary zurück

Diese Eigenschaft gibt alle Schlüssel im Dictionary zurück.

Beispiel11:Wie funktioniert keys?

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

[„China“, „India“, „Nepal“]

Gleichzeitig können Sie auch  values Eigenschaft, um alle Werte im Dictionary zu erhalten.

5. removeValue

Diese Funktion wird verwendet, um den mit dem Schlüssel angegebenen Wert aus dem Dictionary zu löschen und zurückzugeben. Diese beiden Schlüssel-Wert-Paare werden aus dem Dictionary gelöscht.

Beispiel12:Wie funktioniert removeValue()?

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

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

Gleichzeitig können Sie auch removeAll Funktion leert das Dictionary.

Hinweise

1.Wenn Sie die Elemente eines Dictionaries in Swift mit der Index-Syntax ansprechen, müssen Sie sicherstellen, dass der Schlüssel im Index vorhanden ist,否则 erhalten SienilWert. Lassen Sie uns in einem Beispiel sehen:

Beispiel13:Der Schlüssel muss vorhanden sein

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

nil

Im obigen Programm gibt es keinen Schlüssel Japan 。Daher erhalten Sie einen nil-Wert, wenn Sie versuchen, auf den Schlüssel „Japan ” erhalten Sie einen nil-Wert.

2.Gleichzeitig unterscheiden sich Schlüssel und Werte in Swift in der Groß- und Kleinschreibung, daher müssen Sie sicherstellen, dass Sie den korrekten Schlüssel in der richtigen Groß- und Kleinschreibung verwenden/Wert. Andernfalls erhalten Sie einen nil-Wert. Lassen Sie uns in einem Beispiel sehen:

Beispiel14:Schlüssel unterscheiden sich in der Groß- und Kleinschreibung

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

nil

In dem obigen Programm gibt es keinen Schlüssel „nepal“. Daher erhalten Sie einen nil-Wert, wenn Sie versuchen, auf den Schlüssel „nepal“ zuzugreifen.

3.Wenn der Wert des angegebenen Schlüssels nicht existiert, gibt es auch eine andere Methode, um den Standardwert bereitzustellen. Lassen Sie uns das in einem Beispiel sehen:

Beispiel12:Standardwert für nicht vorhandenen Schlüssel

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

Wenn Sie das Programm ausführen, lautet die Ausgabe:

Nicht gefunden

Im obigen Programm haben wir einen Standardwert in den Default-Parameter angegeben, wenn wir auf das Dictionary zugreifen. Wenn der Wert des Schlüssels nicht existiert, wird der Standardwert zurückgegeben, andernfalls wird der Wert zurückgegeben

In unserem Beispiel, der Schlüssel“nepal”Nicht vorhanden, daher gibt das Programm den Standardwert zurück: Nicht gefunden