3. Salta [2p]¶
Considerem una llista no buida d’enters on cada enter representa una posició de la mateixa llista. Definim el terme saltar sobre la llista des d’una posició i com anar a la posició l[i] (sempre que estigui dins el rang de l).
Per exemple, donada la llista l = [3, 2, 0, 1] i la posició inicial 3:
de la 3 saltem a la 1 (perquè l[3] és 1)
de la 1 saltem a la 2
de la 2 saltem a la 0
i de la 0 a la 3 i entra en bucle
Si la llista fos l = [4, 2, 0, 1] i la posició inicial 3, els salts serien els mateixos excepte que de la posició 0 saltaríem a la 4 que està fora del rang de l i acaba.
Es demana que al mòdul salta (fitxer salta.py) facis la funció Python següent:
salta(l, i0)tal que donats:
retorna la llista de posicions de
lper les que es passa a l’anar saltant a partir de la posiciói0fins que:
o bé se surt del rang de
lo bé s’arriba a una posició per la que ja s’ha passat
Aquesta darrera posició també ha d’estar inclosa a la llista
l, sigui la que sigui.
Per exemple:
>>> l = [1, 2, 5, 11, 1, 10, 6, 4, 3, 8, 5] >>> salta(l, 0) [0, 1, 2, 5, 10, 5] >>> salta(l, 6) [6, 6] >>> salta(l, 8) [8, 3, 11]
Disposes de doctests al fitxer salta_test.txt.