Code Note

列表

删除列表中的元素

  1. # 1.删除指定元素
  2. list_name.remove(element)
  3. >>> number=[1,3,2,0]
  4. >>> number.remove(1)#删除指定元素1,这里是int类型因此不需要引号
  5. >>> print(number)
  6. [3, 2, 0]
  7. # 2.del[索引数]删除指定索引数的元素
  8. del list_name[index]
  9. >>> number=[1,3,2,0]
  10. >>> del number[3]#删除指定索引数的元素,这里是3
  11. >>> print(number)
  12. [1, 3, 2]
  13. # 3.pop()方法弹出匀速,当()中无索引数时弹出最后一个元素
  14. list_name.pop(element)
  15. >>> number=[1,3,2,0]
  16. >>> number.pop(1)#弹出索引数为1的元素
  17. 3
  18. >>> print(number)#由此看出pop方法可以改变原列表
  19. [1, 2, 0]

调用类中的函数

  • 定义类时,初始化成员变量,定义类函数
  • 调用类函数时,先构造对象,再通过”.”调用函数 ```python class Solution(object): def init(self, nums):

    1. self.nums = nums

    def removeDuplicates(self, nums):

    1. for i in range(0, len(nums)):
    2. if i + 1 < len(nums):
    3. del nums[i]
    4. print(len(nums))

list_test1 = [1, 1, 2] Answer = Solution(list_test1) Answer.removeDuplicates(list_test1)

结果是2

  1. <a name="gi6fZ"></a>
  2. #
  3. <a name="T0Lay"></a>
  4. ## Error
  5. <a name="ydNRk"></a>
  6. ### IndentationError
  7. - IndentationError: expected an indented block
  8. - 缩进问题,在代码前加一个缩进,即空格。(indentation : 缩进)
  9. <a name="0WTrr"></a>
  10. # Coding
  11. <a name="3PBMP"></a>
  12. ## 双指针法--删除排序数组中的重复项
  13. - 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
  14. <br />题目来源:[力扣 (LeetCode)](https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2gy9m/)
  15. ```python
  16. class Solution(object):
  17. def __init__(self, nums):
  18. self.nums = nums
  19. def removeDuplicates(self, nums):
  20. for i in range(0, len(nums)):
  21. if i + 1 < len(nums) and i - 1 >= 0:
  22. if nums[i] == nums[i + 1]:
  23. del nums[i]
  24. if nums[i] == nums[i - 1]:
  25. del nums[i]
  26. if len(nums) >= 2:
  27. if nums[0] == nums[1]:
  28. del nums[0]
  29. if len(nums) >= 2:
  30. if nums[len(nums) - 1] == nums[len(nums) - 2]:
  31. del nums[len(nums) - 1]
  32. return len(nums)
  33. list_test1 = [-3, -1, -1, 0, 0, 0, 0, 0, 2]
  34. Answer = Solution(list_test1)
  35. Answer.removeDuplicates(list_test1)
  36. # 输入:[-3,-1,-1,0,0,0,0,0,2]
  37. # 输出:[-3,-1,0,0,2]
  38. # 预期结果:[-3,-1,0,2]
  39. # 73/161 个测试用例 45.34%
  40. # 正确解答:
  41. class Solution(object):
  42. def __init__(self, nums):
  43. self.nums = nums
  44. def removeDuplicates(self, nums):
  45. if len(nums) == 0:
  46. return 0
  47. i = 0
  48. for j in range(1, len(nums)):
  49. if nums[j] != nums[i]:
  50. i += 1
  51. nums[i] = nums[j]
  52. j += 1
  53. print(i + 1)
  54. print(nums)
  55. list_test1 = [-3, -1, -1, 0, 0, 0, 0, 0, 2]
  56. Answer = Solution(list_test1)
  57. Answer.removeDuplicates(list_test1)
  58. # 输入:[-3,-1,-1,0,0,0,0,0,2]
  59. # 输出:[-3,-1,0,2] 记得审题,题目说只看返回长度内的新数组是否没有重复元素
  60. # 预期结果:[-3,-1,0,2]
  • Screenshot from 2021-04-08 22-24-35.png