lunes, 21 de octubre de 2019

Listas / Arrays en Python II - Eliminar elementos con Del - Curso Python de cero a profesional - Capítulo 12

Listas / Arrays en Python II -  Eliminar elementos con Del

Listas en python del

En el capítulo anterior vimos cómo se crean las listas en Python. En este vamos a ver cómo modificar el contenido de estas listas, en concreto, voy a enseñarte a eliminar elementos.





Cuando creas programas complejos, en ocasiones necesitas que estas listas vayan cambiando constantemente.

Veamos un ejemplo, tenemos un videojuego en el que el jugador tiene una serie de logros por conseguir. Uno de eso logros, por ejemplo, son los disparos a la cabeza, conocidos también como headshots. El primero son 100, 1000 el segundo, 5000 el tercero y 25000 el cuarto. Podría quedar así:


logrosHeadshot = ['100Headshot', '1000Headshot', '5000Headshot', '25000Headshot']

A medida que el jugador vaya avanzando, se le irán sumando headshots a la variable contadorHeadshot. Cuando consiga el primer logro (100) se eliminará de la lista para evitar que cada 100 headshot que consiga el jugador, vuelva a conseguir el mismo logro. Lo que queremos es que le aparezcan cada uno de los 4 logros una única vez. Para ello, voy a eliminar de manera dinámica el primer logro.




logrosHeadshot = ['100Headshot', '1000Headshot', '5000Headshot', '25000Headshot']

contadorHeadshot = 100

if contadorHeadshot == 100:
    
    print("Logro desbloqueado - 100 Headshots")
    
    del logrosHeadshot [0]

    print(logrosHeadshot)

No te asustes con este código, aún no hemos visto el condicional if que aparece, pero es buen momento para que entres un poco en contacto con él. El condicional if ejecuta el código de su interior si su condición se cumple.

Analicemos el código detenidamente:

Tenemos una lista llamada logrosHeadshot con 4 logros dentro.
La variable contadorHeadshot irá guardando durante la partida los headshots hasta que su valor sea 100.
Cuando contadorHeadshot valga 100 se va a ejecutar el código del if ¿Por qué? porque la variable contadorHeadshot es igual (==) a 100.



Una vez se ejecuta el if, aparece un mensaje en la pantalla (Logro desbloqueado - 100 Headshots).

Después del mensaje en pantalla, se ejecuta la parte del código del logrosHeadshot [0]. Con este [0] estoy llamando a la primera posición (0) de la lista (100Headshot) y con del hago que la elimine.

Finalmente, para comprobar si se ha eliminado el logro correctamente, hago un print() que efectivamente, me muestra la lista ahora con una posición menos.

Ahora si, el resultado:

Resultado


Del listas Python

Pueden ser conceptos difíciles para estar empezando y puede que no lo entiendas del todo. Lo importante, es que entiendas el funcionamiento de del, que básicamente sirve para eliminar partes de una lista. 



En esta lista se ha eliminado el elemento número [0] (100Headshot) y es en esa posición, dónde queda ahora (1000Headshot).

Comprobémoslo.


del logrosHeadshot [0]

print(logrosHeadshot [0])

Elimino con del logrosHeadshot [0] a 100Headshot y luego imprimo la posición donde estaba. En ella se ha posicionado 1000Headshot.

Resultado
Logros videojuegos Python

Es importante que tengas en cuenta que los elementos cambian de posición, porque cuando tengas códigos extensos, puedes hacer muchos errores, por ejemplo, si más adelante tu juego o programa tuviese código que trabajase directamente con el elemento eliminado, esto daría lugar a errores.



Es mucha información de golpe, pero si superas esta barrera, estarás un poco más cerca de ser un/a profesional de Python, así que si te quedan dudas, no dudes (valga la redundancia) en preguntarme en los comentarios.

0 comentarios:

Publicar un comentario

Si te a gustado o necesitas ayuda, tus comentarios son agradecidos :D