如何使用循环将值分配给scala中的列表?

时间:2017-12-04 19:41:21

标签: scala

我是斯卡拉的新手,因此找到了困难。有人可以指导我如何使用for循环初始化列表列表?我试过这个:



for(i <- 1 to N)
  {
    for(D <- 1 to Dimensions)
    {
  Population=List(List(D,i))
    }
&#13;
&#13;
&#13;

但效果不佳

2 个答案:

答案 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)
  }
}