input: Write a function to move all zeroes in a list to the end of the list without changing the order of non-zero elements. If the list is empty, it should return an empty list.
  def move_zeroes(lst):
      non_zero_elements = [x for x in lst if x != 0]
      zero_count = len(lst) - len(non_zero_elements)
      return non_zero_elements + [0] * zero_count
  
  assert move_zeroes([3, 0, 1, 0, 5, 0, 2]) == [3, 1, 5, 2, 0, 0, 0]
  assert move_zeroes([]) == []
  assert move_zeroes([0, 0, 0, 1, 2, 3]) == [1, 2, 3, 0, 0, 0]
  assert move_zeroes([1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5]
  assert move_zeroes([0, 0, 0]) == [0, 0, 0]
output: def move_zeroes(lst):
      non_zero_elements = [x for x in lst if x != 0]
      zero_count = len(lst) - len(non_zero_elements)
      return non_zero_elements + [0] * zero_count