Ir al contenido principal

Python: Listas...

Continuamos recorriendo Python y hoy llega el turno de las listas. Que son colecciones ordenadas de datos y que equivalen a los arrays de otros lenguajes, pero que tienen varias particularidades y nos ofrecen muchas posibilidades adicionales respecto de los arrays de lenguajes como C.

Creando una lista:


Como dijimos, una lista es una colección ordenada de datos, en Python tienen la particularidad de poder almacenar cualquiera de los tipos de datos que ya conocemos e incluso pueden almacenar otras listas.


Para crear una, debemos declararla como lo haríamos con cualquier variable, y declaramos los elementos de la misma entre corchetes separados por comas.



Veamos un ejemplo de una lista desde el intérprete:




Como se ve en la imagen, creamos una lista con 5 elementos. Python nos permite hacer algo así y agregar en una misma lista elementos de 5 tipos diferentes, algo que otros lenguajes con arrays homogéneos no permiten.


También podemos agregar una lista como elemento de otra lista:




En este ejemplo, el tercero de los elementos de la lista2 es la lista que creamos anteriormente.


Accediendo a los elementos de una lista:


Para acceder a los elementos de una lista ya creada e inicializada, usaremos la siguiente sintaxis:



Donde el índice corresponde a la posición del elemento dentro de la lista, teniendo en cuenta que el primer elemento comienza con el índice 0.

Veamos un ejemplo mostrando un elemento de la primera lista con print:


Aquí mostramos el elemento de índice 3 de la primera lista, que sería el cuarto elemento: en este caso el número real 2.0.

Accediendo a los elementos de una lista dentro de otra lista:


En el caso que quisiéramos acceder a un elemento de una lista que está dentro de otra lista, debemos usar 2 índices:




Donde el nombre es el de la lista exterior (la que contiene a la otra), el índice1 es el correspondiente a la posición en donde se encuentra la segunda lista y el índice2 es el índice del elemento de la segunda lista al que queremos acceder.

Veamos el ejemplo para mostrar el elemento "Programación.NERD" de la primera lista accediendo desde la lista2 que la contiene:


Donde el primer índice nos marca el índice de la posición donde se encuentra lista dentro de lista2 y el segundo índice el del elemento que queríamos en lista.

En el caso que tuviéramos una cantidad mayor de listas anidadas, deberíamos usar tantos índices como sea necesario si deseamos acceder a un elemento de una sublista desde la lista exterior que contenga a las demás como vemos en el ejemplo:


Modificando un elemento concreto de la lista:


Podemos utilizar la misma forma que usábamos para acceder a un elemento para modificarlo si colocamos la lista con el índice del lado izquierdo de una operación de asignación:




Como vemos en el ejemplo:



Donde mostramos el complejo que está en el índice 4 de la lista y lo cambiamos por el entero 55.

Usando índices negativos:


La posibilidad de usar índices negativos es algo poco común que Python nos ofrece, de esta manera podemos acceder o modificar los elementos de una lista de atrás para adelante. De manera que el índice -1 corresponde al último elemento de la lista, el -2 al penúltimo y así sucesivamente.

Veamos el ejemplo:


Donde vemos que accedemos al elemento de índice 1 de la lista contando de atrás hacia adelante y usando el índice negativo -4.

Seleccionando porciones de la lista:


Python también nos permite la posibilidad de acceder y modificar porciones de una lista mediante lo que se conoce como particionado (o slicing). Esto podemos hacerlo mediante la sintaxis:


Donde inicio y fin son índices que Python interpretará como que queremos la porción de la lista que va desde inicio hasta fin sin tomar este último.

Veamos esto con un ejemplo donde guardamos una porción de la lista en otra lista:


También podemos agregar tres números en este particionado:


Donde el último indica cada cuántas posiciones agregar un elemento de la lista como se puede apreciar en el ejemplo:


Este particionado también puede usarse para modificar una lista e incluso su tamaño si en el lado derecho de la asignación colocamos más o menos elementos que los de la porción de la izquierda.


Agregando y borrando elementos de una lista:


Por último, para agregar o quitar elementos a una lista, haremos lo siguiente:


Por lo que si queremos agregar un elemento más a nuestra lista de ejemplo haríamos:




Y si quisiéramos borrar por ejemplo el 55 de la nueva lista que vemos en el ejemplo haríamos:







Comentarios

Entradas populares de este blog

C: Conversiones de tipo (casting) en C...

El casting o simplemente cast  nos permite hacer una conversión explícita de un tipo de dato a otro, a criterio del programador siempre y cuando estos tipos sean compatibles. Este cast se realiza a través de un operador de conversión de tipos (type casting operator) y es un recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad. Hacer uso de un cast es tan sencillo como poner (tipo de dato)  delante de la expresión o variable a convertir. Veamos un ejemplo: Declaramos una variable de tipo int con un identificador tan creativo como "a" y le realizamos diferentes cast a a para mostrarlo como si fuera un float, un double y un char en un printf. Lo que obtendríamos en pantalla sería lo siguiente: Donde tenemos el valor de nuestro a, a convertido en float y double (mostrándolo con 3 cifras decimales) y a convertido en char. Si vemos este último caso, al hacer la conversión de "a" a char toma a como el código ascii de...

C: Ejemplos: Congruencia de Zeller (nivel básico) ...

La Congruencia de Zeller es un algoritmo que se atribuye al matemático alemán Julius Christian Johannes Zeller que vivió en el siglo XIX. Este algoritmo nos permite determinar el día de la semana que le corresponde a una fecha determinada del calendario Gregoriano. La fórmula que nosotros usaremos (con algunas modificaciones respecto de la original para poder usarla en  informática) es la siguiente: Donde h es el día de la semana (entre 0 y 6), J es año/100 (la centuria) y K es año mod 100 (el año de la centuria). Y hay que tener en cuenta que los meses de enero y febrero cuentan como el mes 13 y 14 del año anterior. Ahora que tenemos la fórmula, programemos el algoritmo en C mediante el uso de una función: Analicemos el código paso a paso: Tenemos en cuenta el caso de enero y febrero: Dijimos que estos meses corresponden a los meses 13 y 14 del año anterior por lo que los asignamos como corresponde (mes + 12 , que dará 13 para enero y 14 para febrero) y le ...

C: Funciones. Pasaje de parámetros por valor y por referencia...

Esta vez avanzaremos en lo relativo a las funciones en C, incorporando dos nuevos conceptos acerca del pasaje de parámetros: el pasaje por valor y por referencia . Paso de parámetros por valor: Éste es el pasaje que ya conocíamos desde el post referente a funciones . Si recordamos un poco al respecto, al realizar la definición de la función colocamos los parámetros que ésta recibe especificando el tipo de dato de los mismos. Luego, cuando hacemos el llamado y especificamos los argumentos, estos se evalúan y se le pasa a la función una copia de los mismos. A esto es lo que llamamos paso por valor ya que la función trabajará con los valores de esas copias. Si pasáramos variables como argumento, éstas no se modificarían por este sistema de copias. Veamos esto con un ejemplo simple en que tenemos la siguiente función void que intercambia los valores de dos enteros x e y: Declaramos dos variables de tipo int en el main, mostramos sus valores, llamamos a la función y volvemos a mostrarlos...