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”)]

更新於:2022年10月20日

3K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告