相关疑难解决方法(0)

Python 3中是否有'foreach'功能?

当我遇到这种情况时我可以用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仍然受到以下两个事实的欢迎:

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

python foreach python-3.x

115
推荐指数
8
解决办法
36万
查看次数

拆包,扩展拆包和嵌套扩展拆包

考虑一下这些表达方式......请耐心等待...这是一个很长的清单......

(注意:重复一些表达式 - 这只是为了呈现"上下文")

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)

python argument-unpacking python-3.x iterable-unpacking

93
推荐指数
2
解决办法
3万
查看次数