English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、辞書とは何か、辞書の作成方法、および辞書内の一般的な操作について学びます。
前回のSwift 配列この記事では、変数/定数には複数の値が保存されます。この記事では、データをどうやって/値はキー値対として保存されます。
辞書は、無序列表として複数のデータをキー値対として保存できるコンテナです。
各値はユニークなキーに関連付けられ、データは無序列表中として保存されます。集合つまり、あなたが辞書内で定義したプロジェクトの順序とは異なる順序で要素を取得します。
特定の識別子を持つ値を集合内で検索する必要がある場合、配列ではなく辞書を使用します。例えば、この国の首都を検索したいとします。この場合、国と首都をキー値対を持つ辞書を作成します。今や、キー「国」を検索することで、集合から値「首都」を取得できます。
簡単に言えば、キーと値を組み合わせます。上の例では、国と首都を組み合わせます。
あなたは、方括号[ ]内でkey:valueデータタイプを指定することで、空の辞書を作成することができます。
let emptyDic:[Int:String] = [:] print(emptyDic)
このプログラムを実行すると、出力は以下のようになります:
[:]または
空の辞書を以下のように定義することもできます:
let emptyDic:Dictionary<Int, String> = [:] print(emptyDic)
上記のプログラムでは、Int型のkeyとString型のvalueを持つdictionary型の定数emptyDicを宣言し、0値で初期化しました。
または
Swiftは型推論言語であるため、データ型を指定せずに直接辞書を作成することもできますが、コンパイラがそれを推論するためにいくつかの値を使って初期化する必要があります:
let someDic = ["a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9] print(someDic)
このプログラムを実行すると、出力は以下のようになります:
["b": 2, "a": 1, "i": 9, "c": 3, "e": 5, "f": 6, "g": 7, "d": 4, "h": 8]
上記のプログラムでは、辞書を宣言しましたが、明示的に型を定義せずに、いくつかのデフォルトの要素を使って初期化しました。
要素はkey:value対に配置されており、keyの型はString、valueの型はIntです。辞書は無序列表であるため、print(someDic)は定義された順序とは異なる順序で値を出力します。
配列を使って辞書を作成することもできます。
let customKeys = ["Facebook", "Google", "Amazon"] let customValues = ["Mark", "Larry", "Jeff"] let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues)) print(newDictionary)
このプログラムを実行すると、出力は以下のようになります:
["Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark"]
上記のプログラムでは、zip(customKeys,customValues)が新しいタプルシーケンスを作成し、各要素がcustomKeysとcustomValuesからの値を表します。
今では、このシーケンスをDictionary(Unique eKeysWithValues:)の初期値設定項に渡し、新しいDictionaryを作成できます。したがって、print(NewDictionary)は新しいDictionaryを输出します。このDictionaryには、2つの配列の要素が含まれています。
作为数组,可以使用下标语法访问字典的元素。您需要在字典名称后面的方括号中包含要访问的值的键。
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"])1Optional( print(someDic["h"])8Optional(
)-forでループで辞書の要素にアクセスすることもできます。
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)") }
このプログラムを実行すると、出力は以下のようになります:
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
辞書にインデックス構文を使用して追加できる要素。キーを含めなければなりません。 新しいキー インデックスとして使用し、Dictionary 型に新しい値を割り当てます。
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] someDictionary["Japan"] = "Tokyo" print(someDictionary)
このプログラムを実行すると、出力は以下のようになります:
["Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu"]
上記の例では、インデックス構文を使用して新しいキー値ペア "Japan": "Tokyo" を辞書に作成しました。
特定のキーに関連付けられた値を変更するために、以下のようにインデックス構文を使用できます:
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] someDictionary["Nepal"] = "KATHMANDU" print(someDictionary)
このプログラムを実行すると、出力は以下のようになります:
["China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU"]
この属性は辞書が空かどうかを決定します。辞書に値が含まれていない場合、true を返し、それ以外の場合は false を返します。
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.isEmpty)
このプログラムを実行すると、出力は以下のようになります:
false
この属性は、辞書の最初の要素にアクセスするために使用されます。
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.first)
このプログラムを実行すると、出力は以下のようになります:
Optional((key: "China", value: "Beijing"))
この属性は、ディクショナリの要素数(キー値対)を返します。
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.count)
このプログラムを実行すると、出力は以下のようになります:
3
この属性は、ディクショナリのすべてのキーを返します。
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] let dictKeys = Array(someDictionary.keys) print(dictKeys)
このプログラムを実行すると、出力は以下のようになります:
["China", "India", "Nepal"]
同様に、以下を使用することもできます values 属性を使用して、ディクショナリのすべての値を取得します。
この関数は、指定されたキーで指定された値をディクショナリから削除し、返します。これらのキー値対はすべてディクショナリから削除されます。
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] let val = someDictionary.removeValue(forKey: "Nepal") print(val) print(someDictionary)
このプログラムを実行すると、出力は以下のようになります:
Optional("Kathmandu") ["India": "NewDelhi", "China": "Beijing"]
同様に、以下を使用することもできます removeAll 関数でディクショナリをクリアします。
1.Swiftで下書き構文を使用してディクショナリの要素にアクセスする際には、キーがインデックスに存在することを確認する必要があります。それでない場合、nil値が取得されます。nil値です。例を確認してみましょう:
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] let val = someDictionary["Japan"] print(val)
このプログラムを実行すると、出力は以下のようになります:
nil
上記のプログラムでは、キーがありません。 Japan 。したがって、キー「Japan 」時、nil値が取得されます。
2.同様に、Swiftではキー値は大文字小文字を区別するため、正しい大文字小文字のキーを使用することを確認する必要があります。/値です。それでない場合、nil値が取得されます。例を確認してみましょう:
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] let val = someDictionary["nepal"] print(val)
このプログラムを実行すると、出力は以下のようになります:
nil
以上のプログラムでは、キー「nepal」がありません。したがって、キー「nepal」にアクセスしようとすると、nil値が取得されます。
3.指定されたキーの値が存在しない場合、デフォルト値を提供するもう一つの方法があります。以下の例で見てみましょう:
var someDictionary = ["Nepal":"カトマンズ", "China":"北京", "India":"ニューデリー"] let val = someDictionary["nepal", default:"Not Found"] print(val)
このプログラムを実行すると、出力は以下のようになります:
Not Found
上記のプログラムでは、ディクショナリにアクセスする際にデフォルト引数としてデフォルト値を指定しました。キーの値が存在しない場合、デフォルト値が返され、それ以外の場合、その値が返されます
私たちの例では、キー“ネパール”存在しないため、プログラムはデフォルト値を返します: Not Found。