input: Write a function to move all zeroes in a list to the end of the list, while maintaining the order of the non-zero elements. If the list is empty then return the list as is.
  def move_zeroes(lst):
      # Initialize the new list
      new_lst = []
    
      # Move all non-zeroes to the beginning of the new list
      for num in lst:
          if num != 0:
              new_lst.append(num)
    
      # Append 0's to the end
      for _ in range(len(lst) - len(new_lst)):
          new_lst.append(0)
    
      # Return the new list
      return new_lst
  
  assert move_zeroes([3, 0, 1, 0, 5, 0, 2])==[3, 1, 5, 2, 0, 0, 0]
  assert move_zeroes([0, 0, 0, 0, 1])==[1, 0, 0, 0, 0]
  assert move_zeroes([1, 2, 3])==[1, 2, 3]
  assert move_zeroes([])==[]
  assert move_zeroes([0, 0, 0])==[0, 0, 0]
output: def move_zeroes(lst):
      new_lst = [num for num in lst if num != 0]
      new_lst.extend([0] * (len(lst) - len(new_lst)))
      return new_lst