gpt4 book ai didi

scala - 如何合并/组合不同大小的元组列表

转载 作者:行者123 更新时间:2023-12-01 22:49:06 27 4
gpt4 key购买 nike

我有以下两个列表-

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/

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