Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Listas en Python

13 julio, 2013
Las listas son estructuras de datos que se encargan de almacenar y ordenar elementos, las listas son del tipo mutable ¿Que quiere decir esto? que se pueden añadir, eliminar y editar datos en tiempo de ejecución a diferencia de las tuplas que son inmutables y una vez creadas ya no se pueden modificar.

Las listas en Python pueden manejar varios tipos de datos a la vez, es decir puede tener elementos numéricos y cadenas de texto mezclados sin ningún problema, recordemos que las variables en Python son dinámicas, entonces no tenemos problemas para realizar esta declaración:

>> lista = [True, 1, "hola", 42, False]

Podemos ver que la sintaxis es muy simple, corchetes que contienen los elementos que van separados por comas, podemos observar que primero hay un booleano, luego un número, una cadena, otro numero y finalmente otro booleano.Ya tenemos una lista creada, pero ahora ¿Que podemos hacer con ella? Sigue leyendo.

Mostrar elementos de una Lista

Para mostrar en pantalla todos los elementos podemos usar la función print() así:

>> print("\nEl contenido de la lista es:\n",lista, "\n")
El contenido de la lista es:
[True, 1, 'hola', 42, False]

Para el mismo propósito y de manera similar, podemos hacer uso de un for donde imprimimos los valores de la variable "i" que cambia a lo largo del recorrido de la lista:

>>for i in lista:
>>    print(i)
True
1
hola
42
False

También podemos simplemente colocar el nombre de la lista, pero ojo, esto solo funciona si estamos en el interprete de Python, si intentamos ejecutar un script.py entonces no mostrará nada y será necesario colocar print(lista) en esta entrada haré de cuenta y caso que estamos usando el interprete, y aclaro que las líneas que lleven ">>" indican lo que introducimos, y lo que no lleve ">>" indica la salida.

>>lista
[True, 1, 'hola', 42, False]

Si queremos acceder a un elemento específico de la lista lo podemos hacer por medio de su índice, como en los Arrays, el índice parte de 0, entonces si queremos el primer término colocaríamos:

>>lista[0]
True
>>lista[3]
hola

Se puede acceder por medio de un índice negativo, es decir, si tenemos 5 elementos, y colocamos "-1" nos arrojaría el elemento "5", si colocamos "-2", nos arrojaría el elemento [4], ejemplo:

>>lista[-1]
False
>>lista[-2]
42

Si queremos acceder a los elementos de una lista por medio de un rango, digamos por ejemplo del elemento 1 al 3, usamos [1:4] y muestra los elementos cuyo índice sea 1,2 ó 3 (no incluye el 4), por ejemplo:

>>lista[1:4]
[1, 'hola', 42]
>>lista[0:2]
[True, 1]

También podemos hacerlo con índices negativos, siguiendo la misma lógica de antes:

>>> lista[1:-1]
[1, 'hola', 42]

Si nos salimos del rango, es decir seleccionamos elementos cuyo índice no existe en la lista nos mostrará un conjunto vacío:

>>> lista[5:7]
[]

Si queremos mostrar todos los elementos de la lista que estén antes de algún inice específico:

>>> lista[:2]
[True, 1]
>>> lista[:3]
[True, 1, 'hola']

O si por el contrario, queremos mostrar todos los elementos de la lista que estés después de algún indice específico:

>>> lista[3:]
[42, False]
>>> lista[2:]
['hola', 42, False]
Modificar Listas

Por medio del índice no solamente se puede acceder al valor, sino también re-asignarle un nuevo valor:

>>lista[0] = "nuevo valor del elemento"
>>print(lista[0])
nuevo valor del elemento

También podemos reescribir la lista entera asignándole nuevos valores:

>>lista = [True, 1, 3.5, False, "hola", 42, "cesarer.blogspot.com"]
>>print(lista)
[True, 1, 3.5, False, 'hola', 42, 'cesarer.blogspot.com']
>>print(lista[-3])
hola

Para añadir al final de una lista se usa la función append()

>>lista.append("nuevo")
>>lista[7]
nuevo

Para añadir en una posición específica se hace con la función insert()

>>lista.insert(3,True)
>>lista[3]
True

Podemos Borrar los elementos de una lista, por medio de su índide con la función del

>>> del lista[6]
>>> lista
[True, 1, 3.5, True, False, 'hola', 'cesarer.blogspot.com', 'nuevo']
>>> del lista[6]
>>> lista
[True, 1, 3.5, True, False, 'hola', 'nuevo']
>>> del lista[3]
>>> lista
[True, 1, 3.5, False, 'hola', 'nuevo']

También podemos hacer uso de los rangos antes mencionados

>>> del lista[3:6]
>>> lista
[True, 1, 3.5]

Por lo tanto para borrar toda la lista puedes hacerlo borrando los índices del 0 hasta el último de la lista, al final puedes imprimir la lista y ver que devuelve una lista vacía:

>>> del lista[0:]
>>> lista
[]

Podemos concatenar listas con la función extend()

>>> lista = [1,2,3]
>>> lista
[1, 2, 3]
>>> lista2 = ["a","b","c"]
>>> lista2
['a', 'b', 'c']
>>> lista.extend(lista2) #la lista2 se concatena al final
>>> lista #vemos como la lista ha cambiado
[1, 2, 3, 'a', 'b', 'c']
>>> lista2 #claramente la lista2 sigue intacta
['a', 'b', 'c']

Con extend() también podemos concatenar nuevos elementos a una lista, sin necesidad de concatenar le otra lista como en el ejemplo anterior

>>> lista = [0,1,2,3]
>>> lista
[0, 1, 2, 3]
>>> lista.extend([4,5,6,7])
>>> lista
[0, 1, 2, 3, 4, 5, 6, 7]

Para eliminar el último elemento añadido se utiliza la función pop(), si, como si fuese una pila, elimina el último elemento y lo devuelve, de tal manera que podemos asignarle el valor del elemento eliminado a una variable.

>>lista = ["a","b","c","d"]
>>lista.pop
'd'
>>> a = lista.pop()
>>> a
'c'
Otras funciones para las Listas

Si queremos saber cuantos elementos posee una lista, usamos len()

>>print(len(lista))
7

También podemos invertir el orden de una lista con reverse()

>>> lista = ["a","b","c","d"]
>>> lista
['a', 'b', 'c', 'd']
>>> lista.reverse()
>>> lista
['d', 'c', 'b', 'a']

Para saber en que índice se encuentra algún elemento usamos index()

>>> lista.index("c")
1
>>> lista.index("a")
3

La función index es útil, pero corremos el riesgo de que python nos arroje una excepción si el elemento que buscamos no existe y nos arroje una excepción, para evitarlo usamos in que nos devuelve un valor booleano.

>>> lista.index("z") #esto arroja una excepción
Traceback (most recent call last):
File "", line 1, in
ValueError: 'z' is not in list
>> "z" in lista
False
>> "a" in lista
True

Utilizando un conficional if, podemos evitar la excepción y mostrar un mensaje de error al usuario más agradable:

>>> if ("z" in lista == True):
...     print(lista.index("z"))
... else:
...     print("No existe el elemento en la lista")
...
No existe el elemento en la lista

Para ordenar los elementos de una lista, podemos usar la función sort()

>>> lista = [3,6,2,76,36,12,9,0]
>>> lista
[3, 6, 2, 76, 36, 12, 9, 0]
>>> lista.sort()
>>> lista
[0, 2, 3, 6, 9, 12, 36, 76]

Para convertir las palabras de una cadena de texto a elementos separados en una lista, se usa la función split()

>>> palabras = "estoy aprendiendo sobre listas en Python"
>>> lista = palabras.split()
>>> lista
['estoy', 'aprendiendo', 'sobre', 'listas', 'en', 'Python']

Ahora, al estar escribiendo esto, se me ocurrió una pregunta que tal ya te habrás hecho ¿Que pasa si aplico la función sort() a la lista con palabras? veamos:

>>> lista.sort()
>>> lista
['Python', 'aprendiendo', 'en', 'estoy', 'listas', 'sobre']

Al parecer "lo ordena", pero no me pregunten porque ese orden tan extraño, que no tengo idea, como sea, sigamos (pongo "cara de Yao Ming").

Se pude convertir cada elemento de una cadena de texto en una lista con la función list()

>>> lista = list("las listas en Python sin una gran cosa!")
>>> lista
['l', 'a', 's', ' ', 'l', 'i', 's', 't', 'a', 's', ' ', 'e', 'n', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', 's', 'i', 'n', ' ', 'u', 'n', 'a', ' ', 'g', 'r', 'a', 'n', ' ', 'c', 'o', 's', 'a', '!']
>>> lista = list("36326804515")
>>> lista
['3', '6', '3', '2', '6', '8', '0', '4', '5', '1', '5']

También podemos hacer el procedimiento inverso al de split() con la función join(), es decir, hacer que los elementos de la lista formen parte de una string

>>> lista = ["esta","es","una","prueba"]
>>> cadena = " ".join(lista)
>>> cadena
'esta es una prueba'
>>> cadenaSinEspacios = "".join(lista)
>>> cadenaSinEspacios
'estaesunaprueba'
>>> cadenaConGuiones = "-".join(lista)
>>> cadenaConGuiones
'esta-es-una-prueba'

Hay muchas cosas más que se pueden hacer con listas en Python, pero lo dejaré hasta aquí y complementaré más adelante en otras entradas, me despido por ahora y espero que esto resulte de utilidad y de interés, si no he sido lo suficientemente claro tómate la libertad de preguntarlo y trataré de explicarlo mejor, un saludo.

Escrito por César Iglesias

Hola, mi nombre es César, estudiante de Ingeniería en Computación, soy alguien muy curioso que le gusta aprender cosas nuevas en especial si es del mundo GNU/Linux, espero poder compartir lo poco que se con los demas.

Suscribirse
Notificarme las
guest
10 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram