我试图在一行中优化 if 语句,它似乎在我的 shell 中正常工作,但当我测试它时,它什么也没返回。你看到一些奇怪的东西吗?这个函数的目标是用一个单独的替换 if 语句。 return 语句,这就是我所做的。
这是原始函数:
def same_length(L1, L2):
'''(list, list) -> bool
Return True if and only if L1 and L2 contain the same number of elements.
'''
if len(L1) == len(L2):
return True
else:
return False
这是我的优化:
return True if len(L1) == len(L2) else False # Do you see something strange here?
这是正确的吗?
请您参考如下方法:
这是正确的,但你不必把它弄得那么复杂。它相当于:
return len(L1) == len(L2)
这里不需要使用 if 语句:len(L1) == len(L2) 的结果已经是一个 bool 值。如果该 bool 值是 True,则返回 True,对于 False 也是如此。简单地返回测试结果是等价的(并且更有效)。
