Python的注释方法有几种-请详细说明每种方法,python如何整体注释

  Python的注释方法有几种?请详细说明每种方法,python如何整体注释

  之前不太懂leetcode里的题目,就录下来了。

  题目:移动零,给定一个数组nums,写一个函数将所有零移动到它的末尾,同时保持非零元素的相对顺序(Python3环境)。

  例如:

  您必须在原始数组上操作。不要为新阵列分配额外空间。

  最大限度地减少操作总数

  1.在编程的过程中,我首先想到了remove函数:

  class solution(object):defmove zeros(self,nums):for I in range(len(nums)):if nums[I]==0:

  nums.remove(nums[i])

  nums.append(0)返回nums

  a=Solution()print(a . move zeros([1,0,0,3])

  结果是正确的[1,3,0,0]

  2.后来想到了del函数。

  class solution(object):defmove zeros(self,nums):for I in range(len(nums)):if nums[I]==0:del(nums[I])

  nums.append(0)返回nums

  a=Solution()print(a . move zeros([1,0,0,3])

  结果是错误的:[1,0,3,0]

  3.之前没有深究过这两个功能的区别,突然想在这里深究一下。

  按照我们正常的思维,考虑以上两个方案。给定list nums=[1,0,0,3],在for循环中,当i=0时,不进行处理;

  当i=1,nums[1]=0,删除nums[1]=0,然后在末尾再加一个0,nums就变成nums=[1,0,3,0];

  当i=2时,则nums[2]=3,不做任何处理;

  当i=3,nums[3]=0时,删除nums[3]=0,然后在末尾再加一个0,nums就变成nums=[1,0,3,0];

  可见我们考虑的最终结果和del函数的处理是一样的,那么为什么remove函数不一样呢?

  原因是:

  (1)remove删除列表中第一个出现的元素。在第一个程序中,当i=3,nums=[1,0,3,0],nums[3]=0,

  当执行这个nums.remove(nums[3])操作时,将找到并删除列表中第一个出现的0。

  (del删除的是那个索引的元素。在第二个程序中,当i=3,nums=[1,0,3,0],nums[3]=0,

  当执行这个nums.remove(nums[3])操作时,nums[3]中位于索引3位置的元素将被删除。

  4.对于第二个程序的调试:

  class solution(object):defmove zeros(self,nums):index=0 for I in range(len(nums)):if nums[index]==0:del(nums[index])

  nums.append(0)else:

  指数=1

  returnnums

  a=Solution()print(a . move zeros([1,0,0,3])

  注:I只是运算次数的循环,循环中完全可以省略。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: