input: Write a function to move all zeroes in a given list to the end of the list while maintaining the order of the other elements. If the list is empty or already has all zeroes at the end, the function should return the same list.
  assert move_zeroes([3, 0, 1, 0, 5, 0, 2])==[3, 1, 5, 2, 0, 0, 0]
  assert move_zeroes([0, 0, 0, 3, 1, 5, 2])==[3, 1, 5, 2, 0, 0, 0]
  assert move_zeroes([1, 2, 3, 4, 5])==[1, 2, 3, 4, 5]
  assert move_zeroes([])==[]
  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