1

我也有一个包含一些 lambda 元素的列表:

l=['A',lambda x:x*2,lambda x:x*3]

执行 lambda 后如何将此列表附加到另一个列表(如下所示 - 显然这个不起作用):

m=list(k=k(3) if isinstance(k,types.FunctionType) else k for k in l)

预期的结果是:

m=['A',6,9]

这可能吗?

4

2 回答 2

6

您可以使用callable.

>>> l = ['A', lambda x:x*2, lambda x:x*3]
>>> m = [k(3) if callable(k) else k for k in l]
>>> m
['A', 6, 9]
于 2013-06-04T06:26:16.770 回答
-3

您确定要将此列表附加到另一个列表,还是创建一个新列表?以防万一您碰巧使用了不推荐使用可调用的python版本:

for element in l:
    m.append(element(3) if hasattr(element, '__call__') else element)
于 2013-06-04T06:33:38.407 回答