在Python中,为什么我的for循环仅当该数字是数组中的最后一个数字时才排除该数字之前的数字?

迟语

我正在处理codingbat问题,当排除的数字位于数组的末尾时,我得到了意外的结果。

def sum13(nums):
  a = []

  if len(nums) == 0:
    return 0
  for i in range(len(nums)):
    if nums[i] == 13 or nums[i-1] == 13:
      continue
    a.append(nums[i])

  return sum(a)

该代码应将数组中的所有数字附加到列表a上,并返回总和,但不包括数字13和紧随其后的数字的任何实例。对于大多数测试来说,它工作正常,但是当数组以13结尾时,它不会将索引0处的数字附加到列表中,从而返回错误的结果。

亚历克·阿拉迈丁

i为0时,nums[-1]被评估。nums[-1]是的最后一个元素nums这就是你的问题。

如果nums[-1]为13,将continue被执行,因此不会附加任何内容nums

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章