当我遇到这种情况时我可以用javascript来做,我总是认为如果有一个foreach功能就会方便.通过foreach我的意思是下面描述的功能:
def foreach(fn,iterable):
for x in iterable:
fn(x)
Run Code Online (Sandbox Code Playgroud)
他们只是在每个元素上做它并且没有产生或返回一些东西,我认为它应该是一个内置函数,并且应该比用纯Python编写它更快,但我没有在列表中找到它,或者它只是叫另一个名字?或者我在这里错过了一些观点?
也许我错了,因为调用Python中的函数成本很高,对于这个例子来说绝对不是一个好习惯.该函数不应该是一个out循环,而应该在它的正文中执行循环,如下所示,在许多python的代码建议中已经提到过:
def fn(*args):
for x in args:
dosomething
Run Code Online (Sandbox Code Playgroud)
但我认为foreach仍然受到以下两个事实的欢迎:
考虑一下这些表达方式......请耐心等待...这是一个很长的清单......
(注意:重复一些表达式 - 这只是为了呈现"上下文")
a, b = 1, 2 # simple sequence assignment
a, b = ['green', 'blue'] # list asqignment
a, b = 'XY' # string assignment
a, b = range(1,5,2) # any iterable will do
# nested sequence assignment
(a,b), c = "XY", "Z" # a = 'X', b = 'Y', c = 'Z'
(a,b), c = "XYZ" # ERROR -- too many values to unpack
(a,b), c = "XY" # ERROR -- need more than 1 value …Run Code Online (Sandbox Code Playgroud)