将变量转换为lambda中另一个变量的类型

时间:2016-03-21 15:04:35

标签: python python-2.7 lambda

如果我有以下变量:

x = 100.0
y = "100.0"

我想将y转换为x的任何类型,但我试图通过lambda这样做。

1 个答案:

答案 0 :(得分:3)

如果存在类型为x的实例创建者,该实例创建者采用y类型的单个参数并做正确的事情,则可以调用type(x)(y)

>>> x = 100.0
>>> y = "100.0"
>>> type(x)
<class 'float'>
>>> type(x)(y)
100.0

这适用于OP中给出的示例,但在其他情况下会产生细微或错误或完全失败。

但“通过lambda”没有多大意义。 lambda只是定义匿名函数的一种非常强大的语法。这不是一种特殊的功能。你可以写

>>> def f(x,y): return type(x)(y)
>>> f(100.0, "200.0")
200.0

如果你真的坚持,你可以写

>>> f = lambda x,y: type(x)(y)
>>> f(100.0, "200.0")
200.0

但这会让大多数Python程序员想知道你是否是Python的新手,因为没有理由使用lambda来定义匿名函数,然后立即给它命名。