让我们分解一下表达式:
('e' or 'a')
首先会检查是否'e'
为True。如果是,则表达式将返回'e'
。如果没有,它将返回'a'
。
由于所有非空字符串都将返回True
,因此此表达式将始终返回'e'
。这意味着if ('e' or 'a') in L:
可以转换为if 'e' in L
,在这种情况下为False
。
检查列表是否包含一组值中至少一个值的更通用方法是使用any
与生成器表达式耦合的函数。
if any(c in L for c in ('a', 'e')):