Swift 字典(Dictionary)
在本教程中,我们将学习有关 Swift 字典的所有内容;如何创建、访问、添加和删除元素,以及各种内置方法。
Swift 字典是一个无序的项目集合。它以 键/值 对存储元素。这里,键(keys)是与每个值(value)关联的唯一标识符。
让我们看一个例子。
如果我们想存储有关国家及其首都的信息,我们可以创建一个字典,将国家名称作为键(keys),将首都作为值(value)。
键 | 值 |
Nepal | Kathmandu |
Italy | Rome |
England | London |
在 Swift 中创建字典
以下是我们如何在 Swift 中创建字典。
var capitalCity = ["Nepal": "Kathmandu", "Italy": "Rome", "England": "London"]
print(capitalCity)
结果为:
["Nepal": "Kathmandu", "England": "London", "Italy": "Rome"]
在上面的实例中,我们创建了一个名为 capitalCity
的字典。在这里
键 是 "Nepal", "Italy", "England"
值 是 "Kathmandu", "Rome", "London"
当我们运行这段代码时,可能会得到不同顺序的输出。这是因为字典没有特定的顺序。
实例
// dictionary with keys and values of different data types
var numbers = [1: "One", 2: "Two", 3: "Three"]
print(numbers)
结果为:
[3: "Three", 1: "One", 2: "Two"]
在上面的示例中,我们创建了一个名为 numbers
的字典。这里,键 是 Int 类型,值 是字符串类型。
向字典添加元素
我们可以使用带有 []
的字典名称向字典添加元素。例如:
var capitalCity = ["Nepal": "Kathmandu", "England": "London"]
print("Initial Dictionary: ",capitalCity)
capitalCity["Japan"] = "Tokyo"
print("Updated Dictionary: ",capitalCity)
print(capitalCity["Japan"])
结果如下:
Initial Dictionary: ["Nepal": "Kathmandu", "England": "London"]
Updated Dictionary: ["Nepal": "Kathmandu", "England": "London", "Japan": "Tokyo"]
在上面的实例中,我们创建了一个名为 capitalCity
的字典。注意这一行,
capitalCity["Japan"] = "Tokyo"
在这里,我们为 capitalCity
添加了一个新元素,键 是 Japan,值 是 Tokyo。
更改字典的值
我们还可以使用 []
来更改与特定键关联的值。例如:
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
print("Initial Dictionary: ", studentID)
studentID[112] = "Stan"
print("Updated Dictionary: ", studentID)
结果如下:
Initial Dictionary: [111: "Eric", 113: "Butters", 112: "Kyle"]
Updated Dictionary: [111: "Eric", 113: "Butters", 112: "Stan"]
在上面的实例中,我们创建了一个名为 studentID
的字典。最初,与 键 112 关联的 值 为 "Kyle"。现在,注意这一行,
studentID[112] = "Stan"
这里,我们将与 键 112 关联的 值 更改为 "Stan"。
从字典访问元素
在 Swift 中,我们可以独立访问字典的键和值。
1. 仅访问键
我们使用 keys
属性访问字典中的所有键。例如,
var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"]
print("Dictionary: ", cities)
// cities.keys return all keys of cities
var countryName = Array(cities.keys)
print("Keys: ", countryName)
结果为:
Dictionary: ["Nepal": "Kathmandu", "Japan": "Tokyo", "China": "Beijing"]
Keys: ["Nepal", "Japan", "China"]
2. 仅访问值
类似地,我们使用 values
属性访问字典中的所有值。例如,
var cities = ["Nepal":"Kathmandu", "China":"Beijing", "Japan":"Tokyo"]
print("Dictionary: ", cities)
// cities.values return all values of cities
var countryName = Array(cities.values)
print("Values: ", countryName)
结果为:
Dictionary: ["Nepal": "Kathmandu", "China": "Beijing", "Japan": "Tokyo"]
Values: ["Kathmandu", "Beijing", "Tokyo"]
从字典中删除元素
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
print("Initial Dictionary: ", studentID)
var removedValue = studentID.removeValue(forKey: 112)
print("Dictionary After removeValue(): ", studentID)
结果为:
Initial Dictionary: [113: "Butters", 111: "Eric", 112: "Kyle"]
Dictionary After removeValue(): [111: "Eric", 113: "Butters"]
在这里,我们创建了一个名为 studentID
的字典。请注意,
var removedValue = studentID.removeValue(forKey: 112)
removeValue()
方法移除与 键 112 相关联的元素。
removeAll()
函数删除字典中的所有元素。其他字典方法
方法 | 描述 |
---|---|
sorted() | 字典元素的排序 |
shuffled() | 改变字典元素的顺序 |
contains() | 检查指定的元素是否存在 |
randomElement() | 从字典中返回一个随机元素 |
firstIndex() | 返回指定元素的索引 |
遍历字典
我们使用 for 循环 迭代字典的元素。例如,
var classification = ["Fruit": "Apple", "Vegetable": "Broccoli", "Beverage": "Milk"]
print("Keys: Values")
for (key,value) in classification {
print("\(key): \(value)")
}
结果如下:
Keys: Values
Vegetable: Broccoli
Beverage: Milk
Fruit: Apple
查找字典元素数
我们可以使用 count
属性来查找字典中存在的元素数。例如,
var studentID = [111: "Eric", 112: "Kyle", 113: "Butters"]
print(studentID.count)
结果如下:
3
创建一个空字典
在 Swift 中,我们还可以创建一个空字典。例如,
var emptyDictionary = [Int: String]()
print("Empty Dictionary: ",emptyDictionary)
结果如下:
Empty Dictionary: [:]
在上面的实例中,我们创建了一个空字典。注意这个表达
[Int: String]()
Int 指定字典的键为整数类型
String 指定字典的值将为字符串类型。