OK, bravo,podemos obtener el primer elemento en una lista, tanto como el resto de la lista, pero ¿como hacemos para acceder al segundo, tercero o otros elementos de la lista?. Existen varias funciones convenientes para acceder, por ejemplo, la cabeza de la cabeza de una cola de una lista (caadr), la cola de la cola de una lista (cddr), etc.
La convención básica para nombrar es fácil: a y d representan las cabezas y las colas de la lista, así
(car (cdr (car x) ) )
se podría escribir como:
(cadar x)
Para ver una lista completa de la lista de funciones, le remitimos al apéndice, que lista las funciones disponibles para la versión de Scheme usada por ScriptFu.
Para tener práctica con las funciones de acceso a listas, intente teclear lo siguiente ( en una sola linea si está usando la consola); use diferentes variaciones de car y cdr para acceder a los diferentes elementos de la lista:
(let* (
(x ‘( (1 2 (3 4 5) 6) 7 8 (9 10) )
)
)
; place your car/cdr code here
)
Intente acceder al número 3 en la lista usando solo dos llamadas a función. Si puede hacer eso, está en el camino para llegar a ser un Maestro de ScriptFu!.
En Scheme, un punto y coma «;» marca un comentario. Esto y todo lo que siga en la misma linea, es ignorado por el interprete de script, así que puede usar esto para añadir comentarios para refrescar su memoria cuando vuelva a mirar su script.
Acceder a Elementos Individuales de una Lista:
Para acceder a un elemento específico de una lista, puedes utilizar el índice de ese elemento dentro de corchetes ([]
). Los índices en Python comienzan desde 0
para el primer elemento y van hasta n-1
, donde n
es la longitud de la lista.
# Definir una lista de ejemplo mi_lista = [10, 20, 30, 40, 50] # Acceder al primer elemento (índice 0) primer_elemento = mi_lista[0] print(primer_elemento) # Output: 10 # Acceder al tercer elemento (índice 2) tercer_elemento = mi_lista[2]print(tercer_elemento) # Output: 30
Acceder a Subconjuntos de una Lista (Slicing):
Puedes utilizar el slicing ([start:end]
) para acceder a un subconjunto de elementos dentro de una lista, especificando el índice de inicio (start
) y el índice de fin (end
). El slicing devuelve una nueva lista que contiene los elementos desde start
hasta end-1
.
# Definir una lista de ejemplo mi_lista = [10, 20, 30, 40, 50] # Obtener los primeros tres elementos (índices 0, 1, 2) primeros_tres_elementos = mi_lista[0:3]print(primeros_tres_elementos) # Output: [10, 20, 30] # Obtener los elementos desde el índice 1 hasta el final elementos_desde_indice_1 = mi_lista[1:]print(elementos_desde_indice_1) # Output: [20, 30, 40, 50] # Obtener los elementos hasta el índice 3 (no incluido) elementos_hasta_indice_3 = mi_lista[:3]print(elementos_hasta_indice_3) # Output: [10, 20, 30]
Acceder a Elementos Usando Índices Negativos:
También puedes utilizar índices negativos para acceder a elementos desde el final de la lista. -1
se refiere al último elemento, -2
al penúltimo, y así sucesivamente.
# Definir una lista de ejemplo mi_lista = [10, 20, 30, 40, 50] # Obtener el último elemento ultimo_elemento = mi_lista[-1] print(ultimo_elemento) # Output: 50 # Obtener los dos últimos elementos dos_ultimos_elementos = mi_lista[-2:] print(dos_ultimos_elementos) # Output: [40, 50]