Swift将数组转换为元组数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift将数组转换为元组数组相关的知识,希望对你有一定的参考价值。

我有这样一个数组:

[Shivam, Shiv, Shantanu, Mayank, Neeraj]

我想从这个数组创建一个tuples(key , value)数组,只有keyfirst charactervaluearray of strings

像这样:

[

(**key**: S , **value**: [Shivam, Shiv, Shantanu]),

 (**key**: M , **value**: [Mayank]), 

 (**key**: N , **value**: [Neeraj])

]

PS:这个帖子Swift array to array of tuples不重复。 OP想要合并两个数组来创建一个元组数组

答案
  • 第1步:创建分组字典 let array = ["Shivam", "Shiv", "Shantanu", "Mayank", "Neeraj"] let dictionary = Dictionary(grouping: array, by: {String($0.prefix(1))})
  • 第2步:实际上没有第2步,因为不鼓励使用元组进行持久数据存储,但如果你真的想要一个元组数组 let tupleArray = dictionary.map { ($0.0, $0.1) }

例如,比元组更好的数据模型是自定义结构

struct Section {
    let prefix : String
    let items : [String]
}

然后将字典映射到结构并通过prefix对数组进行排序

let sections = dictionary.map { Section(prefix: $0.0, items: $0.1) }.sorted{$0.prefix < $1.prefix}
print(sections)

以上是关于Swift将数组转换为元组数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将火花数据帧数组转换为元组

Cpp:将字符串片段解析为元组

将 Matlab 数组转换为元胞数组

为什么将Python dict转换为元组会返回一组键?

将 Scala 列表转换为元组?

将列表转换为元组对[重复]