Scala:如何将元组元素转换为列表
发布时间:2020-12-16 09:14:53 所属栏目:安全 来源:网络整理
导读:假设我有以下元组列表: val tuples = listOfStrings.map(string = { val split = string.split(":") (split(0),split(1),split(2)) }) 我想在列表中获取split(0),在另一个列表中分割(1)等等. 一个简单的方法可以通过写: list1 = tuples.map(x = x._1).toLi
假设我有以下元组列表:
val tuples = listOfStrings.map(string => { val split = string.split(":") (split(0),split(1),split(2)) }) 我想在列表中获取split(0),在另一个列表中分割(1)等等. list1 = tuples.map(x => x._1).toList list2 = tuples.map(x => x._2).toList list3 = tuples.map(x => x._3).toList 是否有更优雅(功能)的方式实现上述,而不需要写3个独立的语句? 解决方法
这将给您的结果作为列表列表:
tuples.map{t => List(t._1,t._2,t._3)}.transpose 如果要将它们存储在局部变量中,请执行以下操作: val List(l1,l2,l3) = tuples.map{t => List(t._1,t._3)}.transpose 更新:正如Blaisorblade所指出的那样,标准库实际上有一个内置的方法:unzip3,它就像解压缩,但是对于三元组而不是对: val (l1,l3) = tuples.unzip3 不用说,你应该通过我上面的手工解决方案来支持这种方法(但是对于“3”的元组,这仍然适用). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |