Listas
Listas
Una lista es una secuencias ordenadas de objetos de distintos tipos.
Se construyen poniendo los elementos entre corchetes [ ] separados por comas.
Se caracterizan por:
- Tienen orden.
- Pueden contener elementos de distintos tipos.
- Son mutables, es decir, pueden alterarse durante la ejecución de un programa.
Creación de listas mediante la función list()
Otra forma de crear listas es mediante la función list().
list(c): Crea una lista con los elementos de la secuencia o colecciónc.
Se pueden indicar los elementos separados por comas, mediante una cadena, o mediante una colección de elementos iterable.
Acceso a los elementos de una lista
Se utilizan los mismos operadores de acceso que para cadenas de caracteres.
l[i]: Devuelve el elemento de la listalcon el índicei.
El índice del primer elemento de la lista es 0.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
Sublistas
l[i:j:k]: Devuelve la sublista desde el elemento delcon el índiceihasta el elemento anterior al índicej, tomando elementos cadak.
Operaciones que no modifican una lista
len(l): Devuelve el número de elementos de la listal.min(l): Devuelve el mínimo elemento de la listalsiempre que los datos sean comparables.max(l): Devuelve el máximo elemento de la listalsiempre que los datos sean comparables.sum(l): Devuelve la suma de los elementos de la listal, siempre que los datos se puedan sumar.dato in l: DevuelveTruesi el datodatopertenece a la listalyFalseen caso contrario.l.index(dato): Devuelve la posición que ocupa en la listalel primer elemento con valordato.l.count(dato): Devuelve el número de veces que el valordatoestá contenido en la listal.all(l): DevuelveTruesi todos los elementos de la listalsonTrueyFalseen caso contrario.any(l): DevuelveTruesi algún elemento de la listalesTrueyFalseen caso contrario.
Operaciones que modifican una lista
l1 + l2: Crea una nueva lista concatenan los elementos de la listasl1yl2.l.append(dato): Añadedatoal final de la listal.l.extend(sequencia): Añade los datos desequenciaal final de la listal.l.insert(índice, dato): Insertadatoen la posicióníndicede la listaly desplaza los elementos una posición a partir de la posicióníndice.l.remove(dato): Elimina el primer elemento con valordatoen la listaly desplaza los que están por detrás de él una posición hacia delante.l.pop([índice]): Devuelve el dato en la posicióníndicey lo elimina de la listal, desplazando los elementos por detrás de él una posición hacia delante.l.sort(): Ordena los elementos de la listalde acuerdo al orden predefinido, siempre que los elementos sean comparables.l.reverse(): invierte el orden de los elementos de la listal.
Copia de listas
Existen dos formas de copiar listas:
- Copia por referencia
l1 = l2: Asocia la la variablel1la misma lista que tiene asociada la variablel2, es decir, ambas variables apuntan a la misma dirección de memoria. Cualquier cambio que hagamos a través del1ol2afectará a la misma lista. - Copia por valor
l1 = list(l2): Crea una copia de la lista asociada al2en una dirección de memoria diferente y se la asocia al1. Las variables apuntan a direcciones de memoria diferentes que contienen los mismos datos. Cualquier cambio que hagamos a través del1no afectará a la lista del2y viceversa.