Listas como argumentos

Cuando pasas una lista a una función, la función obtiene un apuntador a la lista. Si la función modifica un parámetro de la lista, el código que ha llamado la función también verá el cambio. Por ejemplo, remover_primero elimina el primer elemento de una lista:

He aquí el ejemplo de cómo se usa desde la terminal:

El parámetro t y la variable letras son alias para el mismo objeto.

Es importante distinguir entre operaciones que modifican listas y operaciones que crean nuevas listas. Por ejemplo, el método append modifica una lista, pero el operador + crea una nueva lista:

Esta diferencia es importante cuando escribes funciones que no están destinadas a modificar listas. Por ejemplo, esta función no elimina el primer elemento de una lista:

El operador de rebanado crea una nueva lista y el asignamiento hace que t apunte a la lista, pero nada de esto tiene efecto en la lista que fue pasada como argumento.

Una alternativa es escribir una función que cree y regrese una nueva lista. Por ejemplo, cola regresa todo excepto el primer elemento de una lista:

Esta función deja la lista original sin modificar. Veamos como se usa:

Escribe una función llamada recortar que toma una lista y la modifica, removiendo el primer y último elemento, y regresa None. Después escribe una
función llamada medio que toma una lista y regresa una nueva lista que contiene
todo excepto el primero y último elementos.