gpt4 book ai didi

ios - Swift:合并具有重复键但唯一值的字典数组

转载 作者:行者123 更新时间:2023-12-01 18:35:28 33 4
gpt4 key购买 nike

我有一个包含相同键但值不同的字典数组。我想合并这些字典并添加相同键的所有值,如下所示:

var arrayofDict = [["2019":"A"],["2019":"B"],["2019":"C"],["2018":"A"],["2018":"c"],["2017":"A"],["2017":"B"],["2017":"C"],["2016":"A"],["2015":"A"],["2015":"B"]]

作为字典的预期结果:
   var newDict = [["2019":["A","B","C"]],["2018":["A","C"]],["2017":["A","B","C"]],["2016":["A"]],["2015":["A","B"]]]

最佳答案

这显示了如何构建单个词典。您的“预期结果”是一个数组。这是您真正期望的,还是想要一个数组?

您可以迭代字典项并建立字典条目:

var arrayofDict = [["2019":"A"],["2019":"B"],["2019":"C"],["2018":"A"],["2018":"c"],["2017":"A"],["2017":"B"],["2017":"C"],["2016":"A"],["2015":"A"],["2015":"B"]]

var result = [String : [String]]()
for dict in arrayofDict {
for (key, value) in dict {
result[key, default: []].append(value)
}
}

print(result)
["2016": ["A"], "2018": ["A", "c"], "2015": ["A", "B"], "2019": ["A", "B", "C"], "2017": ["A", "B", "C"]]

或者,如果需要数组:
let result2 = result.map { [$0.key: $0.value] }
print(result2)
[["2015": ["A", "B"]], ["2016": ["A"]], ["2019": ["A", "B", "C"]], ["2018": ["A", "c"]], ["2017": ["A", "B", "C"]]]

关于ios - Swift:合并具有重复键但唯一值的字典数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60007612/

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