Hola Joaquin,
El código parece correcto. Ojo que (contador = i) es una asignación y eso da siempre verdadero, por lo cual supongo que no te está funcionando. Tenés que poner (contador == i).
La parte de generar nueva memoria la estás haciendo bien. Propongo que sigas el consejo de Mauricio de probar el código. En este caso podés crear una lista, ejecutar take, borrar la lista original e imprimir la lista generada por take. Si no explota significa que la memoria de la lista nueva no estaba siendo compartida con la lista original.
Saludos
El código parece correcto. Ojo que (contador = i) es una asignación y eso da siempre verdadero, por lo cual supongo que no te está funcionando. Tenés que poner (contador == i).
La parte de generar nueva memoria la estás haciendo bien. Propongo que sigas el consejo de Mauricio de probar el código. En este caso podés crear una lista, ejecutar take, borrar la lista original e imprimir la lista generada por take. Si no explota significa que la memoria de la lista nueva no estaba siendo compartida con la lista original.
Saludos