【发布时间】:2020-11-30 19:57:33
【问题描述】:
目前,我有一个数组声明为:
let VitamineARetinol = "VitamineARetinol"
let VitamineABetacarotene = "VitamineABetacarotene"
let VitamineC = "VitamineC"
let VitamineD = "VitamineD"
let Calories = "Calories"
typealias ListOfAliment = [String: [String: Double]]
let Data: ListOfAliment = [
"Orange": [VitamineARetinol: 0.5, VitamineC: 0.3, VitamineD: 0.98, Calories: 100],
"Pomme": [VitamineARetinol: 0.2, VitamineC: 0.2, VitamineD: 0.38, Calories: 120],
"Poire": [VitamineARetinol: 0.1, VitamineC: 0.7, VitamineD: 0.58, Calories: 140],
"Laitue": [VitamineARetinol: 0.3, VitamineC: 0.1, VitamineD: 0.92, Calories: 105],
"Banane": [VitamineARetinol: 0.7, VitamineC: 0.01, VitamineD: 0.63, Calories: 122]
]
var ListOfAlimentClassed = Data
我需要从 Calories 键中对其进行排序,同时保留所有数组数据,如下所示:
ListOfAlimentClassed = [
"Orange": [VitamineARetinol: 0.5, VitamineC: 0.3, VitamineD: 0.98, Calories: 100],
"Laitue": [VitamineARetinol: 0.3, VitamineC: 0.1, VitamineD: 0.92, Calories: 105],
"Pomme": [VitamineARetinol: 0.2, VitamineC: 0.2, VitamineD: 0.38, Calories: 120],
"Banane": [VitamineARetinol: 0.7, VitamineC: 0.01, VitamineD: 0.63, Calories: 122],
"Poire": [VitamineARetinol: 0.1, VitamineC: 0.7, VitamineD: 0.58, Calories: 140]
]
我怎样才能在 Swift 中有效地做到这一点?请帮忙!
【问题讨论】:
-
您不能对字典进行排序,根据定义,它们是未排序的集合。
-
您不对字典进行排序,它是键/值系统,而不是索引/值系统。你可以做到这一点,但你会失去它是字典的事实(因为你可以得到键/值的元组),但之后不会是字典。
-
好的,那么即使我必须将字典的类型更改为另一个,我如何才能将这些数据从较少的热量排序到最多的热量?
-
为您的数据创建一个结构体,并使用数组代替结构体实例
-
请给我看看好吗?
标签: swift dictionary nested sorteddictionary