大数据(7j)比较Python和Scala的yield

Posted 小基基o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(7j)比较Python和Scala的yield相关的知识,希望对你有一定的参考价值。

以Python为参照速查Scala语法

简单的yield

Python的yield在函数中,遍历函数取值

def f():
    for i in range(5):
        yield i ** 2

Scala的yield配合for用来赋值

val vector = for (i <- 1 to 5) yield {
  i * i
}

print(vector)  // Vector(1, 4, 9, 16, 25)

yield+判断

Python:

def f():
    for i in range(10):
        if i % 2 == 1:
            yield i ** 2

Scala:if在循环体内,会yield()

val vector = for (i <- 1 to 10) yield {
  if (i % 2 == 1) {
    i * i
  }
}

print(vector) // Vector(1, (), 9, (), 25, (), 49, (), 81, ())

Scala:if在条件内,才不会yield()

val vector = for (i <- 1 to 10 if i % 2 == 1) yield {
  i * i
}

print(vector) // Vector(1, 9, 25, 49, 81)

以上是关于大数据(7j)比较Python和Scala的yield的主要内容,如果未能解决你的问题,请参考以下文章

大数据(7d)比较Python和Scala的方法和函数

大数据(7c)比较Python和Scala的流程控制

大数据(7i)比较Python和Scala的collection常用方法

R,Python,Scala 和 Java,到底该使用哪一种大数据编程语言

关于这场Python 和Scala的较量,你怎么看?

大数据的框架与特点