【发布时间】:2017-03-11 22:32:10
【问题描述】:
给定一个整数数组,如果该数组在某处的某个 2 旁边包含一个 2,则返回 True。
has22([1, 2, 2]) → 真
has22([1, 2, 1, 2]) → 假
has22([2, 1, 2]) → 假
我的尝试是:
def has22(nums):
if 2 in nums:
if (nums[nums.index(2) + 1] == 2):
return True
elif (nums[nums.index(2) - 1] == 2):
return True
else:
return False
else:
return False
这导致Error: list index out of range。如果有人能解释为什么会发生这种情况,我们将不胜感激。
【问题讨论】:
-
如果 2 是第一个或最后一个数字怎么办?这将超出范围...
-
是的,我想我假设如果它导致越界,它只会移动到下一个 if else 语句。关于如何实现这一目标的任何想法?
-
您可以将条件语句包装在
try: ... except IndexError: pass中以忽略异常。
标签: python arrays algorithm list python-3.x