2024-03-29 06:33:31 发布
网友
有没有与python的等价物itertools.cycle公司()? 在
我想要一个数组的列表,并不断循环它们。所以,如果数组名为A到D,itertools.cycle公司可以做到:
itertools.cycle('[A,B,C,D]') --> A B C D A B C D...
这将“循环”或“滚动”原始集合。在
为了回答这个问题,我正在深入研究Scala流,但我想我会问一下是否缺少一些内置功能。在
谢谢!在
迭代器。连续会成功的
Iterator.continually("scala").flatMap(x => x)
或者
Scala REPL
scala> Iterator.continually("scala").flatMap(x => x).take(100).foreach(println) scala> Iterator.continually("scala": Seq[Char]).flatten.take(100).foreach(println)
是的,你可以用Stream来建模
def cycle(str: String): Stream[String] = str #:: cycle(str)
用法:
cycle("scala").flatten
scala> def cycle(str: String): Stream[String] = str #:: cycle(str) cycle: (str: String)Stream[String] scala> cycle("java").take(100) res2: scala.collection.immutable.Stream[String] = Stream(java, ?) scala> cycle("java").take(100).force res3: scala.collection.immutable.Stream[String] = Stream(java, java, java, java, java, java, ... )
这里我使用了Stream对象的continually方法的组合,然后将结果展平,希望这有帮助:
Stream
continually
scala> Stream.continually(array).flatten res0: scala.collection.immutable.Stream[Int] = Stream(1, ?) scala> val array = Array(1, 2, 3, 4) array: Array[Int] = Array(1, 2, 3, 4) scala> val stream = Stream.continually(array).flatten stream: scala.collection.immutable.Stream[Int] = Stream(1, ?) scala> stream.take(10).foreach(println) 1 2 3 4 1 2 3 4 1 2
迭代器。连续会成功的
或者
^{pr2}$Scala REPL
或者
是的,你可以用Stream来建模
用法:
Scala REPL
这里我使用了
Stream
对象的continually
方法的组合,然后将结果展平,希望这有帮助:相关问题 更多 >
编程相关推荐