Python Java forEach等效

时间:2016-06-09 16:48:00

标签: java python python-3.x lambda

我是Java程序员。我几天前开始学习Python。 我想知道:是否有任何等价物


   map.forEach(System.out::println)


在Python中使用lambdas? 或者只有for循环:


    for e in map: print(e)


2 个答案:

答案 0 :(得分:5)

没有相当于Java的命令式Iterable.forEachStream.forEach方法。有一个map函数,类似于Java的Stream.map,但它适用于将变换应用于可迭代的函数。与Java的Stream.map一样,在对返回值执行终端操作之前,它实际上不会应用该函数。

您可以滥用map来完成forEach

的工作
list(map(print, iterable))

但这是一个坏主意,从一个不应该有的功能产生副作用,并建立一个你不需要的巨型列表。它就像在做

someList.stream().map(x -> {System.out.println(x); return x;}).collect(Collectors.toList())

在Java中。

在Python中执行此操作的标准方法是循环:

for thing in iterable:
    print(thing)

答案 1 :(得分:0)

Python还有一个map函数,它使用语法map(function, iterable, ...)

请参阅Python文档:https://docs.python.org/2/library/functions.html#map