当我遇到这种情况时,我可以用 javascript 来做,我总是认为如果有 foreach
函数会很方便。 foreach 我的意思是下面描述的功能:
def foreach(fn,iterable):
for x in iterable:
fn(x)
他们只是在每个元素上都这样做并且没有产生或返回某些东西,我认为它应该是一个内置函数并且应该比使用纯 Python 编写它更快,但我没有在列表中找到它,或者它只是叫了另一个名字?或者我只是在这里错过了一些点?
也许我错了,因为在 Python 中调用函数的成本很高,对于这个例子来说绝对不是一个好习惯。而不是一个输出循环,该函数应该在它的主体侧执行循环,如下所示,这在许多 python 的代码建议中已经提到:
def fn(*args):
for x in args:
dosomething
但基于以下两个事实,我认为 foreach 仍然受欢迎:
- 在正常情况下,人们只是不关心性能
- 有时 API 不接受可迭代对象,您无法重写其源代码。
原文由 user2003548 发布,翻译遵循 CC BY-SA 4.0 许可协议
我见过的每一次“foreach”(PHP、C#、…)都与 Python 的“for”语句基本相同。
这些或多或少是等价的:
所以,是的,python 中有一个“foreach”。名为“为”。
您所描述的是“数组映射”功能。这可以通过 python 中的 列表理解 来完成: