为了账号安全,请及时绑定邮箱和手机立即绑定

使用for循环,报错IndexError: list index out of range

使用for循环,报错IndexError: list index out of range

千万里不及你 2019-03-01 06:09:59
题目描述从排序数组中删除重复项题目来源及自己的思路我用这个代码实现从排序数组中删除重复项,就是LeetCode上的算法题,我先用for循环写,感觉思路没问题,但一直报错IndexError: list index out of range,后来查了下答案,只是把for改成了while,然后就通过了检查。这个是不是因为for循环range()函数中只会在第一次调用时计算len(nums),之后range的值就不会改变了。相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)这是for循环的:1 nums = [1,1,1,2,3,1,1]2 count = 03 if len(nums) == 1 or len(nums) == 0:4 count = len(nums)5 else:6 for i in range(len(nums)-1):7 print(len(nums))8 if nums[i] == nums[i+1]:9 del nums[i+1]10 else:11 count += 112 13 print(count)error : IndexError: list index out of range这是while正确的版本:class Solution:def removeDuplicates(self, nums):     """     :type nums: List[int]     :rtype: int     """     i = 0     if len(nums) == 1 or len(nums) == 0:        return len(nums)    else:        while i < (len(nums)-1):               if nums[i] == nums[i+1]:                del nums[i+1]            else:                 i += 1              return你期待的结果是什么?实际看到的错误信息又是什么?还有一个小问题,我的while的代码,最后只写了return也能返回正确的结果,这是什么原因?是不是因为LeetCode他帮我补上了?新手,只学了下基础语法,有些地方搞不清楚,多谢各位大佬了!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1561 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信