Python 3 中有“foreach”函数吗?

2024-01-15

当我遇到可以用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 仍然受欢迎:

  1. 在正常情况下,人们并不关心性能
  2. 有时 API 不接受可迭代对象,并且您无法重写其源代码。

我见过的每次出现的“foreach”(PHP、C#...)基本上与 python 的“for”语句相同。

这些或多或少是等效的:

// PHP:
foreach ($array as $val) {
    print($val);
}

// C#
foreach (String val in array) {
    console.writeline(val);
}

// Python
for val in array:
    print(val)

所以,是的,Python中有一个“foreach”。称为“为”。

您所描述的是“数组映射”功能。这可以用以下方法完成列表推导式 http://docs.python.org/3/tutorial/datastructures.html#list-comprehensions在Python中:

names = ['tom', 'john', 'simon']

namesCapitalized = [capitalize(n) for n in names]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 中有“foreach”函数吗? 的相关文章

随机推荐