我有一个包含一些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]
这可能吗?
答案 0 :(得分: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]
答案 1 :(得分:-3)
您确定要将此列表附加到其他列表,还是制作新列表? 以防您碰巧使用不推荐使用callable的python版本:
for element in l:
m.append(element(3) if hasattr(element, '__call__') else element)