Python 不要返回任何内容,而是就地修改NUM

Python 不要返回任何内容,而是就地修改NUM,python,algorithm,list,Python,Algorithm,List,问题和我的代码如下。然而,我仍然收到一条消息说“不要返回任何东西,改为在适当的位置修改NUM。”有人能解释一下为什么我的代码没有计算“适当的位置”吗?谢谢 给定一个数组nums,编写一个函数将所有0移到它的末尾,同时保持非零元素的相对顺序。 例如,给定nums=[0,1,0,3,12],调用函数后,nums应该是[1,3,12,0,0] 注: 必须在不复制阵列的情况下就地执行此操作。 最小化操作的总数 输出: [1, 3, 12, 0, 0] 它清楚地说“不要返回任何东西”,那么为什么要返回某

问题和我的代码如下。然而,我仍然收到一条消息说“不要返回任何东西,改为在适当的位置修改NUM。”有人能解释一下为什么我的代码没有计算“适当的位置”吗?谢谢

给定一个数组nums,编写一个函数将所有0移到它的末尾,同时保持非零元素的相对顺序。 例如,给定nums=[0,1,0,3,12],调用函数后,nums应该是[1,3,12,0,0]

注: 必须在不复制阵列的情况下就地执行此操作。 最小化操作的总数

输出:

[1, 3, 12, 0, 0]

它清楚地说“不要返回任何东西”,那么为什么要返回某些东西呢?注释
return nums
,并将其更改为
#return nums
什么给出了消息“不要返回任何东西,改为修改nums”?这是一个评估代码的系统吗?我们怎么知道呢?只需删除return语句,函数将返回None,这将被视为不“任何”。具有讽刺意味的是,您确实进行了适当的修改,但没有按照要求的最低操作次数进行修改。每个元素只需要移动一次,因此应该只移动一次。
nums = [0, 1, 0, 3, 12]

def moveZeroes(nums):
  pos = 0
  for i in range(len(nums)):
    if nums[i]:
      nums[i], nums[pos] = nums[pos], nums[i]
      pos += 1

moveZeroes(nums)
print(nums)
[1, 3, 12, 0, 0]