我是斯卡拉的新手,因此找到了困难。有人可以指导我如何使用for循环初始化列表列表?我试过这个:
for(i <- 1 to N)
{
for(D <- 1 to Dimensions)
{
Population=List(List(D,i))
}
&#13;
但效果不佳
答案 0 :(得分:1)
您不希望将值分配给现有List
。这不是List
类型的好处,而且Scala风格也很差。但是,您可以而且应该做的是创建一个包含所有必需元素的新List[List[Int]]
。
val population:List[List[Int]] = for {
i <- (1 to n).toList
d <- 1 to dimension
} yield List(d,i)
第一个Range
(1到n)投放到List
,结果将是List[List[Int]]
。没有它,结果是Seq[List[Int]]
。
答案 1 :(得分:0)
你在找这样的东西吗?
val population: List[List[(Int, Int)]] = List(1,2,3,4,5) map { i =>
List(11, 12, 13, 14, 15) map { D =>
(D, i)
}
}
基本上,如果你从List开始,你最终得到一个List。
同样,如果你从IndexedSequence开始,你将得到一个IndexedSequence
val populationAsIndexedSeq: IndexedSeq[IndexedSeq[(Int, Int)]] = 1 to 5 map { i =>
11 to 15 map { D =>
(D, i)
}
}