我有以下两个列表-
List(("ABC",1,10),("PQR",1,10))
List((1,"abc",3940903,0.0),(2,"pqr",1234,3.0))
我想要以下输出
List(("ABC",1,10,1,"abc",3940903,0.0),("PQR",1,10,2,"pqr",1234,3.0)
我尝试了concat,:::但没有为我工作。
如何使用Scala获得高于输出的输出?
最佳答案
您不能直接在Scala中合并元组。有两种方法可以实现它
使用shapeless
val A = List(("ABC", 1, 10), ("PQR", 1, 10))
val B = List((1, "abc", 3940903, 0.0), (2, "pqr", 1234, 3.0))
val zippedList = A zip B
import shapeless.syntax.std.tuple._
zippedList.map { case (a, b) => a ++ b }
//List((ABC,1,10,1,abc,3940903,0.0), (PQR,1,10,2,pqr,1234,3.0))
此方法适用于任意大小的元组
不使用外部库
zippedList.map { case ((a,b,c), (p,q,r,s)) => (a,b,c,p,q,r,s) }
//List((ABC,1,10,1,abc,3940903,0.0), (PQR,1,10,2,pqr,1234,3.0))
元组应该对此进行固定设置
关于scala - 如何合并/合并不同大小的元组列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29373898/