我有以下lambda函数:
f = lambda x: x == None and '' or x
Run Code Online (Sandbox Code Playgroud)
如果它接收None作为参数,它应该返回一个空字符串,如果它不是None,则返回参数.
例如:
>>> f(4)
4
>>> f(None)
>>>
Run Code Online (Sandbox Code Playgroud)
如果我调用f(None)而不是获得一个空字符串,我会得到None.我打印了函数返回的类型,我得到了NoneType.我在期待弦乐.
type('')返回字符串,所以我想知道为什么当我将None作为参数传递时,lambda不会返回空字符串.
我对lambdas很新,所以我可能误解了一些关于它们如何工作的事情.
z33*_*33m 20
使用if else结构
f = lambda x:'' if x is None else x
Run Code Online (Sandbox Code Playgroud)
在你的情况下''的问题被认为是布尔假.bool('')== False.您可以使用
f =lambda x:x if x is not None else ''
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11940 次 |
| 最近记录: |