【问题标题】:functional programming in python - using map(), filter(), and sum() together - java .stream() equivalent?python 中的函数式编程 - 一起使用 map()、filter() 和 sum() - java .stream() 是否等效?
【发布时间】:2023-01-31 01:07:14
【问题描述】:

我正在学习 Python 和 Java 的函数式编程。

我有一些 Java 代码可以从列表中找出双倍偶数的总和。

我想在 Python 中使用函数式编程来做同样的事情(即从列表中找到双偶数的总和)。就使用 filter()、map() 和 sum() 而言,什么是好的做法一起并且代码是可读的

我用 Python 编写的内容(见下文)完成了这项工作,但可读性不是很好。

谢谢你的帮助!

# JAVA

import java.util.Arrays;
import java.util.List;
public class GFG {
    public static void main(String[] args)
    {
        List<Integer> numbers
            = Arrays.asList(11, 22, 33, 44,
                            55, 66, 77, 88,
                            99, 100);
 
        System.out.println(
            numbers.stream()
                .filter(number -> number % 2 == 0)
                .mapToInt(e -> e * 2)
                .sum());
    }
}

// OUTPUT: 640 

# PYTHON 

class GFG:

    @staticmethod
    def main():
        numbers = [11, 22, 33, 44, 55, 66, 77, 88, 99, 100]
        print(sum(map(lambda x: x * 2, (filter(lambda x: x % 2 == 0, numbers)))))
   

GFG.main()

# OUTPUT: 640 

【问题讨论】:

    标签: python functional-programming


    【解决方案1】:

    使用带有生成器理解的 sum

    sum(x * 2 for x in numbers if x % 2 == 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 2023-02-23
      • 2018-07-07
      • 2016-06-28
      • 1970-01-01
      • 2019-06-12
      • 2020-03-10
      相关资源
      最近更新 更多