gpt4 book ai didi

swift - 用 tie 元素按值排序字典不应更改其顺序

转载 作者:行者123 更新时间:2023-11-28 10:06:57 27 4
gpt4 key购买 nike

我有一个 [String: Int] 类型的字典,它的值为

let dic = [“a”:4, “b”:3, “c”:3]

我想按值和使用方法对字典进行排序

dic  = dic.sorted(by: { $0.value < $1.value })

结果

dic = [“c”:3, “b”:3, “a”:4]

它正在对字典进行排序,但我希望相同的值不应该排序或更改它们的顺序,例如,我想要这个结果

dic = [“b”:3, “c”:3, “a”:4]

最佳答案

这里的主要问题是dictionary is an unordered collection ,所以尝试对其进行排序并不是最好的做法。

如果您想存储游戏的得分值(例如排行榜),您可以使用 tuples .

typealias Score = (username: String, score: Int)

然后使用可以创建一个元组数组并按您想要的方式对它们进行排序。

var scores = [Score]()

// fill the scores
scores.append(("a", 4))
scores.append(("b", 3))
scores.append(("c", 3))

scores.sort {
return $0.score < $1.score || ($0.score == $1.score && $0.username.localizedCaseInsensitiveCompare($1.username) == .orderedAscending)
}

关于swift - 用 tie 元素按值排序字典不应更改其顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52216477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com