Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这句话表达得好吗?_Python_Function - Fatal编程技术网

Python 这句话表达得好吗?

Python 这句话表达得好吗?,python,function,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

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

这是正确的吗

这是正确的,但你不必把它弄得这么复杂。这相当于:

return len(L1) == len(L2)

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

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

return len(L1) == len(L2)

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

为什么不
返回len(L1)==len(L2)
这已经是一个布尔表达式,结果为True或False:)只要返回它就行了如果您有一些代码,它什么也不返回,请务必将其包含在您的问题中,以便人们可以查看。为什么不将其包含在您的问题中,以便人们可以查看呢。