Modificar con troceado

Modificar con troceado

No sólo es posible modificar un elemento de cada vez, sino que podemos asignar valores a trozos de una lista:

Modificar con troceado

Modificar con troceado

Nota: La lista que asignamos no necesariamente debe tener la misma longitud que el trozo que sustituimos.

Borrar elementos

Python nos ofrece, al menos, cuatro formas para borrar elementos en una lista:

Por su índice: Mediante la función del():

Modificar con troceado

Por su valor: Mediante la función remove():

Modificar con troceado

Por su índice (con extracción): Las dos funciones anteriores del() y remove() efectivamente borran el elemento indicado de la lista, pero no «devuelven» nada. Sin embargo, Python nos ofrece la función pop() que además de borrar, nos «recupera» el elemento; algo así como una extracción. Lo podemos ver como una combinación de acceso + borrado:

Modificar con troceado

Nota: Si usamos la función pop() sin pasarle ningún argumento, por defecto usará el índice -1, es decir, el último elemento de la lista. Pero también podemos indicarle el índice del elemento a extraer.

Por su rango: Mediante troceado de listas:

Modificar con troceado

Borrado completo de la lista

Python nos ofrece, al menos, dos formas para borrar una lista por completo:

1. Utilizando la función clear():

Modificar con troceado

2. «Reinicializando» la lista a vacío con []:

Modificar con troceado

Nivel avanzado

La diferencia entre ambos métodos tiene que ver con cuestiones internas de gestión de memoria y de rendimiento:

Modificar con troceado

Encontrar un elemento

Si queremos descubrir el índice que corresponde a un determinado valor dentro la lista podemos usar la función index() para ello:

Modificar con troceado

Tener en cuenta que si el elemento que buscamos no está en la lista, obtendremos un error:

Modificar con troceado

Nota: Si buscamos un valor que existe más de una vez en una lista, la función index() sólo nos devolverá el índice de la primera ocurrencia.

Pertenencia de un elemento

Si queremos comprobar la existencia de un determinado elemento en una lista, podríamos buscar su índice, pero la forma pitónica de hacerlo es utilizar el operador in:

Modificar con troceado

Nota: El operador in siempre devuelve un valor booleano, es decir, verdadero o falso.

Ejercicio

Determine si una cadena de texto dada es un isograma, es decir, no se repite ninguna letra. Ejemplos válidos de isogramas:

  • lumberjacks
  • background
  • downstream
  • six-year-old

Número de ocurrencias

Para contar cuántas veces aparece un determinado valor dentro de una lista podemos usar la función count():

Modificar con troceado

Modificar con troceado

Convertir lista a cadena de texto

Dada una lista, podemos convetirla a una cadena de texto, uniendo todos sus elementos mediante algún separador. Para ello hacemos uso de la función join() con la siguiente estructura:

Modificar con troceado

Figura 1: Estructura de llamada a la función join()

Modificar con troceado

Hay que tener en cuenta que join() sólo funciona si todos sus elementos son cadenas de texto:

Modificar con troceado

Truco: Esta función join() es realmente la opuesta a la de split() para dividir una cadena.

Ejercicio

Consiga la siguiente transformación: 12/31/20 – 31-12-2020

Ordenar una lista

Python proporciona, al menos, dos formas de ordenar los elementos de una lista:

Conservando lista original: Mediante la función sorted() que devuelve una nueva lista ordenada:

Modificar con troceado
Modificando la lista original: Mediante la función sort():

Modificar con troceado
Ambos métodos admiten un parámetro «booleano» reverse para indicar si queremos que la ordenación se haga en sentido inverso:

Modificar con troceado

Longitud de una lista

Podemos conocer el número de elementos que tiene una lista con la función len():

Modificar con troceado

Iterar sobre una lista

Al igual que hemos visto con las cadenas de texto, también podemos iterar sobre los elementos de una lista utilizando la sentencia for:

Modificar con troceado

Nota: También es posible usar la sentencia break en este tipo de bucles para abortar su ejecución en algún momento que nos interese.

Iterar usando enumeración

Hay veces que no sólo nos interesa «visitar» cada uno de los elementos de una lista, sino que también queremos saber su índice dentro de la misma. Para ello Python nos ofrece la función enumerate():

Modificar con troceado

Modificar con troceado

Ejecución paso a paso a través de Python Tutor:

https://cutt.ly/TfiuIZ0

Iterar sobre múltiples listas

Python ofrece la posibilidad de iterar sobre múltiples listas en paralelo utilizando la función zip():

Modificar con troceado

Ejecución paso a paso a través de Python Tutor:

https://cutt.ly/lfioilG

Nota: En el caso de que las listas no tengan la misma longitud, la función zip() realiza la combinación hasta que se agota la lista más corta.

Dado que zip() produce un iterador, si queremos obtener una lista explícita con la combinación en paralelo de las listas, debemos construir dicha lista de la siguiente manera:

Modificar con troceado

Ejercicio

Dados dos vectores (listas) de la misma dimensión, utilice la función zip() para calcular su producto escalar.

Ejemplo

  • Entrada:

Modificar con troceado

  • Salida: 101

Modificar con troceado

Publicaciones Similares