Arrays 从数组创建字典,但存在键唯一性问题

Arrays 从数组创建字典,但存在键唯一性问题,arrays,swift,dictionary,Arrays,Swift,Dictionary,我收到了来自API的一系列获奖者。每周我都有三名优胜者。因此,我想将每个获胜者的周数用作字典的键,并将其用作表视图中的节名 我尝试让dict=DictionaryuniqueKeysWithValues:winners.map{$0.weekNo,$0} 但是由于工作日不是唯一的,我每周有3名获奖者,所以我在获奖者阵列中已经有3名获奖者拥有相同的周数 我如何在唯一的关键周编号[String:winners]下收集这些获奖者(每3名获奖者)显然您使用了错误的API 要按周数对数组进行分组,请使用

我收到了来自API的一系列获奖者。每周我都有三名优胜者。因此,我想将每个获胜者的周数用作字典的键,并将其用作表视图中的节名

我尝试让dict=DictionaryuniqueKeysWithValues:winners.map{$0.weekNo,$0} 但是由于工作日不是唯一的,我每周有3名获奖者,所以我在获奖者阵列中已经有3名获奖者拥有相同的周数


我如何在唯一的关键周编号[String:winners]

下收集这些获奖者(每3名获奖者)显然您使用了错误的API

要按周数对数组进行分组,请使用


结果是[String:[Winners]]而不是[String:Winners]

您不能对字典排序,但可以将键放入另一个变量中并对其进行排序。我这样做,结果在控制台中是正确的让dict=Dictionarygrouping:Winners,by:{$0.weekNo}.sorted{a,b->Bool返回Inta.key!>Intb.key!}是的,是的,但是现在你有了一个元组数组。为什么你要从排序闭包中的周数创建整数呢?是的,元组数组是真的……也许我会按照你在另一个变量和排序中提到的方式来做。我使用整数是因为周数是12、11、10、9,所以当作为字符串进行比较时,它们的排序不正确。不是吗为此,请使用.sorted{$0.localizedStandardCompare$1===.orderedDescending}。这将保留数字顺序。
let dict = Dictionary(grouping: winners, by: {$0.weekNo})