首页 > 解决方案 > IF-Else 单行理解

问题描述

这是我的代码示例:

True如果 3 后跟 3,则返回,否则返回下面False 的代码就像一个魅力

def has_33(nums):
    for i in range(len(nums)-1):
        if (nums[i] ==3) and (nums[i+1] ==3):
            return True
    return False
has_33([1, 3, 3])

下面的代码也可以工作:

def has_33(nums):
    return any([(nums[i] ==3) and (nums[i+1] ==3) for i in range(len(nums)-1)])

当我尝试对这段代码进行单行理解时,它不起作用:

def has_33(nums):
    return True if (nums[i] ==3) and (nums[i+1] ==3) else False for i in range(len(nums)-1)

has_33([1, 3, 3])

我只是想知道为什么它不起作用以及如何解决它。

标签: pythondata-analysis

解决方案


展开列表理解代码,

def has_33(nums):
    for i in range(len(nums) - 1):
        if (nums[i] == 3) and (nums[i+1] == 3):
            return True
        else:
            return False

循环将在第一次迭代后返回。


推荐阅读