【问题标题】:Always return else part wheras my condition true当我的条件为真时,总是返回其他部分
【发布时间】:2021-12-06 15:34:21
【问题描述】:
class test:
def search(self, nums: List[int], target: int) -> int:
    for i in nums:
        if i == target:
            return nums.index(target)
        else:
            return -1

为什么它总是返回-1,而我的条件是真的

【问题讨论】:

  • 您的循环总是在第一次迭代期间返回——无论是索引 0 还是回退 -1。在检查了每个项目之后,将“什么都没找到”return -1 移出循环。
  • 将最后一行移到for循环外,并删除else

标签: python python-3.x loops if-statement return


【解决方案1】:

如果first element != target你返回-1,你需要在末尾返回-1,如下所示:

def search(self, nums: List[int], target: int) -> int:
    for i in nums:
        if i == target:
            return nums.index(target)
    return -1

您可以使用enumerate 并更改for,如下所示:

for idx, num in enumerate(nums):
   if num == target:
       return idx
return -1

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多