这两个python代码片段有什么区别?
我想检查数组是否包含序列中的整数1,2,3作为其元素?
def arrayCheck(nums):
for i in nums:
if(i <= (len(nums)-3)):
if (nums[i] == 1 and nums[i+1] == 2 and nums[i+2] == 3):
return(True)
return(False)
def arrayCheck(nums):
for i in range(0,len(nums)-2):
if (nums[i] == 1 and nums[i+1] == 2 and nums[i+2] == 3):
return(True)
return(False)
第一个给出了数组的错误答案:
arrayCheck([1,1,2,1,1,1,1,2,3])
但第二个是正确的。
答案 0 :(得分:1)
第一个块i
是参数的元素。第二,它只是他们的指数。
如果您希望第一个迭代索引而不是元素,请使用此
def arrayCheck(nums):
for i, _ in enumerate(nums):
if i <= len(nums)-3:
顺便说一句,你也可以使用列表切片
if nums[i:i+2] == [1,2,3]:
return True