Python 3.x 我的代码是否短路(python3)

Python 3.x 我的代码是否短路(python3),python-3.x,list,function,Python 3.x,List,Function,如果至少有三个数字是奇数,我们将如何调整它以返回真值?当发生故障时,短路导线 找到第三个奇数-除非我们必须,否则不要遍历整个列表。 ****我是python的新手,我想知道当我使用==,时会花费更多的时间,我不知道我是否正确,但我可以建议对代码进行一些更改。首先-如果要计算奇数,并在赔率为>def count\u赔率(lst:list)时返回True: ... 计数=0 ... 对于lst中的num: ... 如果数值%2为0,则计数+=1 ...

如果至少有三个数字是奇数,我们将如何调整它以返回真值?当发生故障时,短路导线 找到第三个奇数-除非我们必须,否则不要遍历整个列表。
****我是python的新手,我想知道当我使用==,时会花费更多的时间,我不知道我是否正确,但我可以建议对代码进行一些更改。首先-如果要计算奇数,并在赔率为
>def count\u赔率(lst:list)时返回
True
: ... 计数=0 ... 对于lst中的num: ... 如果数值%2为0,则计数+=1 ... 返回计数>>计数赔率([1,3,5,6]) 真的 >>>计算赔率([1,3,7,9,11]) 假的
仅当传递给此方法的列表中有3、2、1或0个奇数时,此函数才会返回
True
。 另一方面,您可以通过使用for循环中的中断来实现目标。以下是解决方案:

>lst=[1,3,5,7]
>>>计数=0
>>>对于lst中的num:
...     如果计数>3:
...             打破
...     如果数值%2为0,则计数+=1
>>>如果计数大于3,则打印(“大于3”),否则打印(“小于3”)
少于3
#代码的其余部分。
还有另一种方法:

>>> def count_odds(lst: list):
...     result = list(map(lambda x: x % 2, lst))
...     return sum(result) <= 3
... 
>>> count_odds([1, 3, 7])
True
>>> count_odds([1, 3, 7, 9])
False
def计数赔率(lst:列表): ... 结果=列表(图(λx:x%2,lst)) ... 返回和(结果)>>计数赔率([1,3,7]) 真的 >>>计算赔率([1,3,7,9]) 假的 map函数获取lst列表中的每个元素,如果元素为奇数,则返回
True
,否则返回False。然后,sum函数对
True
结果列表的所有值进行求和,并给出答案

>>> def count_odds(lst: list):
...     result = list(map(lambda x: x % 2, lst))
...     return sum(result) <= 3
... 
>>> count_odds([1, 3, 7])
True
>>> count_odds([1, 3, 7, 9])
False