首页 > 编程语言 > 详细

Python 循环列表删除元素的注意事项

时间:2019-07-02 17:33:01      阅读:104      评论:0      收藏:0      [点我收藏+]

 

错误示范:

 1 class Solution:
 2     def removeElement(self, nums, val: int) -> int:
 3         for i, num in enumerate(nums):
 4             print(i=, i, , num=, num, , nums=, nums)
 5             if num == val:
 6                 nums.remove(val)
 7         return len(nums)
 8 
 9 s = Solution()
10 s.removeElement([2, 0,1,2,2,3,0,4,2], 2)
11 # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2]
12 # i= 1 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
13 # i= 2 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
14 # i= 3 , num= 3 , nums= [0, 1, 2, 3, 0, 4, 2]
15 # i= 4 , num= 0 , nums= [0, 1, 2, 3, 0, 4, 2]
16 # i= 5 , num= 4 , nums= [0, 1, 2, 3, 0, 4, 2]
17 # i= 6 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]

解决方式:

 1 class Solution:
 2     def removeElement(self, nums, val: int) -> int:
 3         for i, num in enumerate(nums[::-1]):
 4             print(i=, i, , num=, num, , nums=, nums)
 5             if num == val:
 6                 nums.remove(val)
 7         return len(nums)
 8 
 9 s = Solution()
10 s.removeElement([2, 0,1,2,2,3,0,4,2], 2)
11 # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2]
12 # i= 1 , num= 4 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
13 # i= 2 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
14 # i= 3 , num= 3 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
15 # i= 4 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
16 # i= 5 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]
17 # i= 6 , num= 1 , nums= [0, 1, 3, 0, 4, 2]
18 # i= 7 , num= 0 , nums= [0, 1, 3, 0, 4, 2]
19 # i= 8 , num= 2 , nums= [0, 1, 3, 0, 4, 2]
 1 class Solution:
 2     def removeElement(self, nums, val: int) -> int:
 3         i = 0
 4         while i < len(nums):
 5             print(i=, i, , num=, nums[i], , nums=, nums)
 6             if nums[i] == val:
 7                 nums.pop(i)
 8             else:
 9                 i += 1
10         return len(nums)
11 
12 s = Solution()
13 s.removeElement([2, 0,1,2,2,3,0,4,2], 2)
14 # i= 0 , num= 2 , nums= [2, 0, 1, 2, 2, 3, 0, 4, 2]
15 # i= 0 , num= 0 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
16 # i= 1 , num= 1 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
17 # i= 2 , num= 2 , nums= [0, 1, 2, 2, 3, 0, 4, 2]
18 # i= 2 , num= 2 , nums= [0, 1, 2, 3, 0, 4, 2]
19 # i= 2 , num= 3 , nums= [0, 1, 3, 0, 4, 2]
20 # i= 3 , num= 0 , nums= [0, 1, 3, 0, 4, 2]
21 # i= 4 , num= 4 , nums= [0, 1, 3, 0, 4, 2]
22 # i= 5 , num= 2 , nums= [0, 1, 3, 0, 4, 2]

 

Python 循环列表删除元素的注意事项

原文:https://www.cnblogs.com/catyuang/p/11121663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!