rut*_*ord 2 python testing logic expression
str='test'
example={'test':'value',}
return str in example and example[str] or None
Run Code Online (Sandbox Code Playgroud)
为什么看似多余的额外的测试关键str的example?
在此特定示例中,检查是首先确保'test'实际上是示例dict中的有效键,否则您将获得KeyError异常.然后逻辑继续检查键并返回它,或者如果示例[str]的值变为False则返回None
如果这个例子只是这样做会容易得多:
str='test'
example={'test':'value',}
return example.get(str, None) or None
Run Code Online (Sandbox Code Playgroud)
更新
更简单,因为不需要get()的额外参数:
return example.get(str) or None
Run Code Online (Sandbox Code Playgroud)
更新2:从OP中分解真值测试和布尔操作(基于注释)
example = {
'test' : 'value',
'test2': 0,
'test3': [],
}
test = lambda k: k in example and example[k] or None
print test('test')
# value
print test('test2')
# None
print test('test3')
# None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |