我是 Java 程序员。我几天前开始学习 Python。 我想知道:是否有任何等价物
map.forEach(System.out::println)
在 Python 中使用 lambdas? 或者仅使用 for 循环:
for e in map: print(e)
最佳答案
没有等效于 Java 的命令式 Iterable.forEach
或 Stream.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/