gpt4 book ai didi

arrays - 有没有办法在 Swift 中同时映射字典键/值?

转载 作者:行者123 更新时间:2023-11-30 12:48:14 25 4
gpt4 key购买 nike

引用:Swift 标准库 > 词典 > map(_:)

Returns an array containing the results of mapping the given closure over the sequence’s elements.

如上所述,我们可以在字典中进行映射,但输出将是数组,而不是“映射”字典。

老实说,我不太确定说“映射整个字典”是否合法,但我的意思是:

考虑一下我们有:

let myDict = ["1": "one","2": "tow","3": "three"]

我们想要绘制整个事情的 map ! (键和值)。输出应该是:

let mappedDict = ["03": "THREE", "02": "TOW", "01": "ONE"]

假设映射的目标是将“0”作为第一个字符添加到所有键,并让所有值都大写。

为了使其更具可读性,我发布了一个解决方案(我尝试过的)作为答案,而不是在问题本身中提及它;我认为我的答案不是那么优雅(或者至少我对其代码味道的感觉),我映射了键、值并将它们组合在字典中,每个步骤都是独立实现的。

所以,我要问的是:

有没有办法直接一步完成这项工作?类似于:

此代码片段演示了我所询问的内容,代码无法正常工作

let myDict = ["1": "one","2": "tow","3": "three"]
let mappedDict = myDict.map { key, value in
"0" + key
value.uppercased()
}

提前致谢。

最佳答案

这个怎么样?

let myDict = ["1": "one","2": "tow","3": "three"]
let mappedDict = myDict.reduce([:]) { (result, pair) -> [String: String] in
var result = result
result["0" + pair.key] = pair.value.uppercased()
return result
}

关于arrays - 有没有办法在 Swift 中同时映射字典键/值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41342582/

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