Swift 字典(Dictionary)

在本教程中,我们将学习有关 Swift 字典的所有内容;如何创建、访问、添加和删除元素,以及各种内置方法。

Swift 字典是一个无序的项目集合。它以 键/值 对存储元素。这里,键(keys)是与每个值(value)关联的唯一标识符。

让我们看一个例子。

如果我们想存储有关国家及其首都的信息,我们可以创建一个字典,将国家名称作为键(keys),将首都作为值(value)。

NepalKathmandu
ItalyRome
EnglandLondon

在 Swift 中创建字典

以下是我们如何在 Swift 中创建字典。

  1. var capitalCity = ["Nepal": "Kathmandu", "Italy": "Rome", "England": "London"]
  2. print(capitalCity)

结果为:

  1. ["Nepal": "Kathmandu", "England": "London", "Italy": "Rome"]

在上面的实例中,我们创建了一个名为 capitalCity 的字典。在这里

  • 是 "Nepal", "Italy", "England"

  • 是 "Kathmandu", "Rome", "London"

当我们运行这段代码时,可能会得到不同顺序的输出。这是因为字典没有特定的顺序。

注意:这里,键和值都是字符串(String)类型。我们还可以有不同数据类型的键和值。

实例

  1. // dictionary with keys and values of different data types
  2. var numbers = [1: "One", 2: "Two", 3: "Three"]
  3. print(numbers)

结果为:

  1. [3: "Three", 1: "One", 2: "Two"]

在上面的示例中,我们创建了一个名为 numbers 的字典。这里,Int 类型, 是字符串类型。


向字典添加元素

我们可以使用带有 [] 的字典名称向字典添加元素。例如:

  1. var capitalCity = ["Nepal": "Kathmandu", "England": "London"]
  2. print("Initial Dictionary: ",capitalCity)
  3. capitalCity["Japan"] = "Tokyo"
  4. print("Updated Dictionary: ",capitalCity)
  5. print(capitalCity["Japan"])

结果如下:

  1. Initial Dictionary: ["Nepal": "Kathmandu", "England": "London"]
  2. Updated Dictionary: ["Nepal": "Kathmandu", "England": "London", "Japan": "Tokyo"]

在上面的实例中,我们创建了一个名为 capitalCity 的字典。注意这一行,

  1. capitalCity["Japan"] = "Tokyo"

在这里,我们为 capitalCity 添加了一个新元素,JapanTokyo


更改字典的值

我们还可以使用 [] 来更改与特定键关联的值。例如:

  1. var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
  2. print("Initial Dictionary: ", studentID)
  3. studentID[112] = "Stan"
  4. print("Updated Dictionary: ", studentID)

结果如下:

  1. Initial Dictionary: [111: "Eric", 113: "Butters", 112: "Kyle"]
  2. Updated Dictionary: [111: "Eric", 113: "Butters", 112: "Stan"]

在上面的实例中,我们创建了一个名为 studentID 的字典。最初,与 112 关联的 为 "Kyle"。现在,注意这一行,

  1. studentID[112] = "Stan"

这里,我们将与 112 关联的 更改为 "Stan"。


从字典访问元素

在 Swift 中,我们可以独立访问字典的键和值。

1. 仅访问键

我们使用 keys 属性访问字典中的所有键。例如,

  1. var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"]
  2. print("Dictionary: ", cities)
  3. // cities.keys return all keys of cities
  4. var countryName = Array(cities.keys)
  5. print("Keys: ", countryName)

结果为:

  1. Dictionary: ["Nepal": "Kathmandu", "Japan": "Tokyo", "China": "Beijing"]
  2. Keys: ["Nepal", "Japan", "China"]
2. 仅访问值

类似地,我们使用 values 属性访问字典中的所有值。例如,

  1. var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"]
  2. print("Dictionary: ", cities)
  3. // cities.values return all values of cities
  4. var countryName = Array(cities.values)
  5. print("Values: ", countryName)

结果为:

  1. Dictionary: ["Nepal": "Kathmandu", "China": "Beijing", "Japan": "Tokyo"]
  2. Values: ["Kathmandu", "Beijing", "Tokyo"]

从字典中删除元素

  1. var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
  2. print("Initial Dictionary: ", studentID)
  3. var removedValue = studentID.removeValue(forKey: 112)
  4. print("Dictionary After removeValue(): ", studentID)

结果为:

  1. Initial Dictionary: [113: "Butters", 111: "Eric", 112: "Kyle"]
  2. Dictionary After removeValue(): [111: "Eric", 113: "Butters"]

在这里,我们创建了一个名为 studentID 的字典。请注意,

  1. var removedValue = studentID.removeValue(forKey: 112)

removeValue() 方法移除与 112 相关联的元素。

注意:我们还可以使用 removeAll() 函数删除字典中的所有元素。

其他字典方法

方法描述
sorted()字典元素的排序
shuffled()改变字典元素的顺序
contains()检查指定的元素是否存在
randomElement()从字典中返回一个随机元素
firstIndex()返回指定元素的索引

遍历字典

我们使用 for 循环 迭代字典的元素。例如,

  1. var classification = ["Fruit": "Apple", "Vegetable": "Broccoli", "Beverage": "Milk"]
  2. print("Keys: Values")
  3. for (key,value) in classification {
  4. print("\(key): \(value)")
  5. }

结果如下:

  1. Keys: Values
  2. Vegetable: Broccoli
  3. Beverage: Milk
  4. Fruit: Apple

查找字典元素数

我们可以使用 count 属性来查找字典中存在的元素数。例如,

  1. var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
  2. print(studentID.count)

结果如下:

  1. 3

创建一个空字典

在 Swift 中,我们还可以创建一个空字典。例如,

  1. var emptyDictionary = [Int: String]()
  2. print("Empty Dictionary: ",emptyDictionary)

结果如下:

  1. Empty Dictionary: [:]

在上面的实例中,我们创建了一个空字典。注意这个表达

  1. [Int: String]()
  • Int 指定字典的键为整数类型

  • String 指定字典的值将为字符串类型。

注意:创建空字典时,必须指定字典的数据类型。