[英](Scala) initialize val by looping a list of strings
我在循环时遇到麻烦,无法放入我的字符串列表。 我有一个字符串列表,我想迭代将每个元素扔给char:第一次迭代将为0,所以我将每个字符串都作为第一个元素并将它们加在一起,然后变为1、2,依此类推。 基本上,输出从上到下都是垂直的。
例如我有一个这样的字符串列表:
"ABC
DEF
GHI"
所以我的输出将是:
"ADG
BEH
CFI"
有人能指出我正确的方向吗?
在C#或C ++中,我可以简单地使两个for循环并使用myList [y] [x]-如何在scala中做到这一点而不使用可变变量? 我来自C#和C ++背景-我可以蒙住眼睛,但可以做scala-非常沮丧,我在网上找不到任何不错的教程,感觉就像是一片荒芜(或者讽刺的是,这里的一个盲人:)
-谢谢! ^^
集合上的transpose
方法可以实现您想要实现的目标。
List("ABC", "DEF", "GHI").transpose.map(xs => xs.mkString)
s: List[String] = List(ADG, BEH, CFI)
您可以使用Range作为索引:
val result = <yourlist>.headOption.map { head =>
(0 until head.length).map { i =>
<yourlist>.map(_(i))
}
}
这将导致Some(Vector(List(A, D, G), List(B, E, H), List(C, F, I)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.