我今天跑了一个错误,因为我next()用来提取一个值,而'找不到'会发出一个错误StopIteration.
通常会停止程序,但函数使用next是在all()迭代中调用的,所以all刚刚终止并返回True.
这是预期的行为吗?是否有风格指南,以帮助避免这种事情?
简化示例:
def error(): return next(i for i in range(3) if i==10)
error() # fails with StopIteration
all(error() for i in range(2)) # returns True
Run Code Online (Sandbox Code Playgroud) 我坚持这个问题
给定一个int数组,如果数组在某个地方包含2,那么返回True.
has22([1, 2, 2]) ? True
has22([1, 2, 1, 2]) ? False
has22([2, 1, 2]) ? False
Run Code Online (Sandbox Code Playgroud)
我知道基本的想法(有语法错误),但我无法实现它.我也想知道这是什么类型的问题,例如.图,搜索?
def has22(nums):
for x in nums:
if ( (nums[x] = 2) and (nums[x+1] = 2) )
return True
return False
Run Code Online (Sandbox Code Playgroud)