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

标签 arrays swift dictionary mapping

引用: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/

相关文章:

python - numpy - 如何按索引计算嵌套列表中项目的出现次数?

swift - Firebase 存储下载在第一次运行时无法快速完成

ios - 如何获取topLayoutGuide的高度?

arrays - 为什么 awk 似乎随机化数组?

c# - 移除多次出现的数组元素

c - 函数不向数组分配任何内容(使用指针算术)

swift - 按下特定选项卡时设置委托(delegate)

dictionary - 如何更新 map 中的结构属性

python - 如何将文本文件作为字典导入python

c# - 是否保证 Dictionary.Values 按添加顺序返回元素?