Swift 程序字典排序
本教程将讨论如何编写 Swift 程序来排序字典。
字典用于以键值对的形式存储数据,这些数据按照无序的方式进行整理。这里的键类型相同,值类型也相同。每个键都像字典中关联值的标识符一样,每个值都有一个唯一的键。Swift 字典就像真正的字典一样。它根据标识符查找值。
语法
以下是创建字典的语法:
Var mydict = [KeyType: ValueType]() Or Var mydict : [KeyType:ValueType] = [key1:value1, key2:value2, key3:value3]
在字典中,我们可以使用名为 sorted() 的内置函数将元素按升序或降序排序。此函数按升序或降序对字典的所有键或值进行排序。此函数将返回一个元组数组。
以下是语法:
dictName.sorted(by:{operator})
此函数只接受一个可选参数:
> 运算符 - 如果我们传递大于运算符,它将按降序排序键或值。
< 运算符 - 如果我们传递小于运算符,它将按升序排序键或值。
闭包 - 它还可以接受一个闭包,该闭包接受条件并返回布尔值。
以下是演示:
输入
假设我们的给定输入是:
MyDict = ["year1": 1983, "year2": 1987, "year3": 1999, "year4": 1992]
输出
期望输出:
Sorted Dictionary = [(key: "year1", value: 1983), (key: "year2", value: 1987), (key: "year3", value: 1999), (key: "year4", value: 1992)]
按升序排序字典的键
在 Swift 中,我们可以使用 sorted() 函数按升序对字典的键或值进行排序。在此函数中,我们将可选参数的值设置为 < 运算符。
语法
以下是语法:
var sortedDict = mydict.sorted(by: <)
示例
以下程序演示如何对字典的键进行排序。
import Foundation import Glibc // Creating a dictionary var mydict : [Int:String] = [45: "Mickey", 9:"Soniya", 10:"Mino", 1: "Pihu", 3: "Weee"] print("Original Dictionary: ", mydict) // Sorting the keys of dictionary in ascending order var sortedDict = mydict.sorted(by: <) print("Sorted Dictionary in ascending order:", sortedDict)
输出
Original Dictionary: [10: "Mino", 45: "Mickey", 1: "Pihu", 3: "Weee", 9: "Soniya"] Sorted Dictionary in ascending order: [(key: 1, value: "Pihu"), (key: 3, value: "Weee"), (key: 9, value: "Soniya"), (key: 10, value: "Mino"), (key: 45, value: “Mickey")]
在上面的代码中,我们有一个名为 mydict 的字典。现在我们使用 sorted() 函数按升序对字典的键进行排序。
var sortedDict = mydict.sorted(by: <)
因此,生成的元组数组为:
[(key: 1, value: "Pihu"), (key: 3, value: "Weee"), (key: 9, value: "Soniya"), (key: 10, value: "Mino"), (key: 45, value: “Mickey")]
按降序排序字典的键
在 Swift 中,我们可以使用 sorted() 函数按降序对字典的键或值进行排序。在此函数中,我们将可选参数的值设置为 > 运算符。
语法
以下是语法:
var sortedDict = mydict.sorted(by: >)
示例
以下程序演示如何对字典的键进行排序。
import Foundation import Glibc // Creating a dictionary var mydict : [Int:String] = [45: "Mickey", 9:"Soniya", 10:"Mino", 1: "Pihu", 3: "Weee"] print("Original Dictionary: ", mydict) // Sorting the keys of dictionary in descending order var sortedDict = mydict.sorted(by: >) print("Sorted Dictionary in descending order:", sortedDict)
输出
Original Dictionary: [9: "Soniya", 3: "Weee", 45: "Mickey", 10: "Mino", 1: "Pihu"] Sorted Dictionary in descending order: [(key: 45, value: "Mickey"), (key: 10, value: "Mino"), (key: 9, value: "Soniya"), (key: 3, value: "Weee"), (key: 1, value: "Pihu")]
在上面的代码中,我们有一个名为 mydict 的字典。现在我们使用 sorted() 函数按降序对字典的键进行排序。
var sortedDict = mydict.sorted(by: >)
因此,生成的元组数组为:
[(key: 45, value: "Mickey"), (key: 10, value: "Mino"), (key: 9, value: "Soniya"), (key: 3, value: "Weee"), (key: 1, value: “Pihu”)]
通过传递闭包来排序值
要对字典的值进行排序,我们将闭包传递给 sorted() 函数。现在此函数根据传递的闭包对字典的值进行排序。
语法
以下是语法:
var sortedDict = mydict.sorted(by: {$0.value > $1.value})
示例
以下程序演示如何对字典的值进行排序。
import Foundation import Glibc // Creating a dictionary var mydict : [Int:String] = [45: "Mickey", 9:"Soniya", 10:"Mino", 1: "Pihu", 3: "Weee"] print("Original Dictionary: ", mydict) // Sorting the values of dictionary in descending order var sortedDict = mydict.sorted(by: {$0.value > $1.value}) print("Sorted Dictionary in descending order:", sortedDict)
输出
Original Dictionary: [45: "Mickey", 9: "Soniya", 10: "Mino", 1: "Pihu", 3: "Weee"] Sorted Dictionary in descending order: [(key: 3, value: "Weee"), (key: 9, value: "Soniya"), (key: 1, value: "Pihu"), (key: 10, value: "Mino"), (key: 45, value: "Mickey")]
在上面的代码中,我们有一个名为 mydict 的字典。现在我们使用 sorted() 函数按降序对字典的值进行排序。因此,我们在 sorted() 函数中传递以下闭包:
var sortedDict = mydict.sorted(by: {$0.value > $1.value})
这里,$0.value > $1.value 表示第一个值应该大于第二个值。$0 和 $1 分别表示传递给闭包的第一个和第二个参数。因此,生成的元组数组为:
[(key: 3, value: "Weee"), (key: 9, value: "Soniya"), (key: 1, value: "Pihu"), (key: 10, value: "Mino"), (key: 45, value: “Mickey”)]