Удалить смежные дубликаты элементов из списка

Google Python Class | Упражнение со списком -

Получив список чисел, верните список, в котором все смежные элементы == были сведены к одному элементу, поэтому [1, 2, 2, 3] возвращает [1, 2, 3]. Вы можете создать новый список или изменить переданный список.

Мое решение с использованием нового списка -

def remove_adjacent(nums):
  a = []
  for item in nums:
    if len(a):
      if a[-1] != item:
        a.append(item)
    else: a.append(item)        
  return a

Вопрос даже предполагает, что это можно сделать, изменив переданный список. Тем не менее, документация по Python предостерегает от изменения элементов при итерации списка с использованием цикла for.

Мне интересно, что еще я могу попробовать, кроме итерации по списку, чтобы сделать это. Я не ищу решения, но, возможно, намек, который может привести меня в правильном направлении.

ОБНОВИТЬ

- обновил приведенный выше код с предложенными улучшениями.

-пробовал следующее с циклом while, используя предложенные подсказки -

def remove_adjacent(nums):
  i = 1
  while i < len(nums):    
    if nums[i] == nums[i-1]:
      nums.pop(i)
      i -= 1  
    i += 1
  return nums

Ответы на вопрос(16)

Ваш ответ на вопрос