如果我有以下变量:
x = 100.0
y = "100.0"
我想将y
转换为x
的任何类型,但我试图通过lambda这样做。
答案 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来定义匿名函数,然后立即给它命名。