这个if语句是否表达得很好?

时间:2017-02-09 17:22:53

标签: python function

我尝试在一行中优化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?

这是对的吗?

1 个答案:

答案 0 :(得分:5)

这是正确的,但你不必让它如此复杂。它相当于:

return len(L1) == len(L2)

此处不需要使用if - 语句:len(L1) == len(L2)的结果已经是布尔值。如果该布尔值为True,则返回True,而False则相同。简单地返回测试结果是等效的(并且更有效)。