Swift 字典排序程序

swiftserver side programmingprogramming更新于 2025/9/21 12:52:17

本教程将讨论如何编写 Swift 程序对字典进行排序。

字典用于以键值对的形式存储数据,其排序规则不包含任何定义的顺序。字典中的键和值的类型相同。每个键都充当字典中关联值的标识符,每个值都有一个唯一的键。Swift 字典就像真正的字典一样。它根据标识符循环查找值。

语法

  • 以下是创建字典的语法 -

Var mydict = [KeyType: ValueType]()
或
Var mydict : [KeyType: ValueType] = [key1: value1, key2: value2, key3: value3]

在字典中,我们可以借助内置函数 sorted() 对元素进行升序或降序排序。此函数将字典中的所有键或值按升序或降序排序。此函数将返回一个元组数组。

  • 语法如下 -

dictName.sorted(by:{operator})

此函数仅接受一个参数,且为可选参数 -

> 运算符 - 如果我们传递大于运算符,则它将按降序对键或值进行排序。

<运算符  − 如果我们传递小于运算符,它将按升序对键或值进行排序。

Closer − 它也可以接受一个接受条件并返回布尔值的 Closer。

以下是相同的演示 −

输入

假设我们的输入是 −

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)

输出

原始字典:[10: "Mino", 45: "Mickey", 1: "Pihu", 3: "Weee", 9: "Soniya"]
按升序排列后的字典:[(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)

输出

原始字典:[9: "Soniya", 3: "Weee", 45: "Mickey", 10: "Mino", 1: "Pihu"]
按降序排列的字典:[(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")]

通过传递 Closer 对值进行排序

为了对字典的值进行排序,我们将 Closer 传递给 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)

输出

原始字典:[45: "Mickey", 9: "Soniya", 10: "Mino", 1: "Pihu", 3: "Weee"]
按降序排列的字典:[(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")]


相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部