这是效率与可维护性和可读性的一个例子吗?列表理解Python

时间:2017-02-02 17:24:22

标签: performance python-3.x logic list-comprehension

我正在做一个名为two sum的leet代码问题,如下所示:

  

给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。

     

您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。

     

示例:

     
    

给定nums = [2,7,11,15],target = 9,

         

因为nums [0] + nums [1] = 2 + 7 = 9,     返回[0,1]。

  

我写的代码是:

def twoSum(self, nums, target):
    """
    :type nums: List[int]
    :type target: int
    :rtype: List[int]
    """
    return [num for num in nums if (target-num) in nums and (target-num) != num] 

这被认为太深奥了吗?有没有更快的方法来完成这项任务而不会失去可读性?对我来说,这似乎清晰易懂,但我想让别人检查一下。

我理解效率与可读性论点的注意事项:我并不是想让程序更有效率。这纯粹是一个教育问题,为了我自己的利益(我想是自我);我只是想知道这是否是首选的攻击方法。

提前致谢!

0 个答案:

没有答案