java - Python Java forEach 等价物

标签 java python python-3.x lambda

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

map.forEach(System.out::println)

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

for e in map: print(e)

最佳答案

没有等效于 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)

关于java - Python Java forEach 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731895/

相关文章:

java - 用Java扫描txt文件中的文本并抛出我不想要的部分

python - len(array) 在解释器中工作,在函数内调用时失败

python - 如何在 Linux 启动时自动运行 python 脚本

python - 什么时候应该使用 iteritems() 而不是 items()?

python - 如何在 python 3.6 上安装 pip,而不是默认的 python 2.7?

java - codenameone 顺序套接字写/读

java - JCalendar焦点事件

java - ClasscastException : MyClass cannot be cast to javax. servlet.Filter

python - 用最后一个不同于零的值替换零

Python - 如何将 IF 语句转换为函数以使用其他字符串多次调用?