Listas en Python
Apuntes del capítulo 10. Lists, de Think Python.
Traversing
To traverse es el verbo que se refiere al acceso secuencial de los elementos de una lista. La siguiente es una forma de "traversear" una lista:
|
|
Si se necesita modificar algún elemento de la lista es mejor hacer:
|
|
Agregar elementos a una lista
Se pueden agregar elementos individuales a una lista con append.
También se pueden agregar elementos con el operador +.
Ambas formas tienen diferencias:
|
|
El método append modifica la lista sobre la cual se aplica pero tiene salida None.
El operador + sí tiene una salida:
|
|
Se puede agregar una lista (t2) a otra lista (t1) con extend:
|
|
Salidas de los métodos de lista
Las salidas de los métodos aplicados a listas son todos void, es decir que no dan ningún valor de salida. Por ejemplo el método sort ordena una lista, modifica esa lista (la muta) pero la salida es None (aunque la lista efectivamente cambió).
Reduce Fat Fast or Map, Filter and Reduce
Reduce: una operación que combina una secuencia de elementos en un solo valor (por ejemplo: la suma de todos los elementos). Es un patrón de procesamiento que traversea una secuencia y acumula los elementos en un solo resultado.
Map: una operación que aplica una función a cada elemento de una lista (por ejemplo: poner en mayúscula la inicial de las palabras que forman una lista). El mapeo es una relación en la cual cada elemento de una lista corresponde a un elemento en otra lista. Por ejemplo: una lista es un mapeo de índices a elementos.
Filter: una operación que selecciona algunos elementos de una lista, basándose en algún criterio (por ejemplo: las palabras de una lista cuyas letras estén todas en mayúsculas). Es un patrón de procesamiento que traversea una lista y selecciona los elementos que satisfacen algún criterio especificado.
Las operaciones más comunes sobre una lista pueden ser expresadas como una combinación de map, filter y reduce.
Borrar elementos de una lista
Hay distintos modos:
- pop: modifica la lista
|
|
- del: cuando no se necesita el elemento borrado
|
|
Obs: pueden usarse slices. del t[1:3] ---> [2, 16]
- remove: cuando no se conoce el índice, pero sí el elemento a borrar
|
|