我尝试在一行中优化if语句,它似乎在我的shell中正常工作,但是当我测试它时什么都不返回。你看到有些奇怪吗?此函数的目标是用单个替换if语句。返回声明,这就是我所做的。
这是原始功能:
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?
这是对的吗?
答案 0 :(得分:5)
这是正确的,但你不必让它如此复杂。它相当于:
return len(L1) == len(L2)
此处不需要使用if
- 语句:len(L1) == len(L2)
的结果已经是布尔值。如果该布尔值为True
,则返回True
,而False
则相同。简单地返回测试结果是等效的(并且更有效)。