【发布时间】:2015-11-21 19:48:33
【问题描述】:
Scala 有 apply() 函数。
我是 Python 新手,我想知道我应该如何编写以下单行代码:
(part_a, part_b) = (lambda x: re.search(r"(\w+)_(\d+)", x).groups())(input_string)
这样的话我会感觉更好:
(part_a, part_b) = input_string.apply(lambda x: re.search(r"(\w+)_(\d+)", x).groups())
从 FF 的角度来看,我错了吗? Python中有这样的构造吗?
编辑:我知道选不好的 sn-p。
【问题讨论】:
-
不,没有,但编写自己的代码很容易,
part_a, part_b = apply(lambda ...: ..., input_string)可以工作。 -
这将要求所有对象都有一个 apply 方法,而他们没有。所以我担心你不得不忍受它。请注意,如果您使用更长的方式来编写相同的内容,您会感觉更好。
-
Python 从一开始也有一个
apply函数,但是自从apply(fn, args, kwargs) == fn(*args, **kwargs)之后就没有什么用处了.. -
如果你打算只使用一次 lambda 函数,为什么还要使用它?
re.search(r"(\w+)_(\d+)", input_string).groups()有什么问题?
标签: python functional-programming