input: Write a function to move all zeroes in a list to the end of the list. The function should return the modified list.
  def move_zeroes(lst):
      # Count the number of non-zero elements
      num_non_zeroes = 0
      for num in lst:
          if num != 0:
              num_non_zeroes += 1
    
      # Initialize the new list
      new_lst = []
    
      # Move all non-zeroes to the beginning of the new list
      for i in range(num_non_zeroes):
          new_lst.append(lst[i])
    
      # Append 0's to the end
      for _ in range(len(lst)-num_non_zeroes):
          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, 2, 3]) == [1, 2, 3, 0, 0, 0, 0]
  assert move_zeroes([]) == []
  assert move_zeroes([1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5]
  assert move_zeroes([0, 0, 0, 0]) == [0, 0, 0, 0]
output: def move_zeroes(lst):
      non_zeroes = [x for x in lst if x != 0]
      zeroes = [0] * (len(lst) - len(non_zeroes))
      return non_zeroes + zeroes